This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: abstract C++ ABI dependencies
- To: David Taylor <taylor at candd dot org>
- Subject: Re: RFA: abstract C++ ABI dependencies
- From: Jim Blandy <jimb at zwingli dot cygnus dot com>
- Date: 24 Apr 2001 17:34:03 -0500
- Cc: gdb-patches at sources dot redhat dot com, Anthony Green <green at redhat dot com>
- References: <200104241926.PAA27063@houston.candd.org>
Thanks for reading so carefully (and promptly!). I thought I'd been
careful, but clearly there's a bunch of stuff botched. I'll post a
revision in a bit.
I've answered your questions below.
David Taylor <taylor@candd.org> writes:
> cp-abi.h -- includes defs.h and value.h; this is contrary to the value
> of the macro definition of cp_abi_h in Makefile.in.
>
> While I dislike having include files include other include files and I
> don't wish to reopen that debate, I must ask -- why does cp-abi.h
> include defs.h?
>
> Your definition of cp_abi_h is simply cp-abi.h -- however, cp-abi.h
> includes other header files -- OOPS!
I share your preference. In the next rev of this patch, cp-abi.h will
no longer #include any other files.
> 2001-04-24 Jim Blandy <jimb@redhat.com>
>
> (Changes from Daniel Berlin, with revisions by Jim Blandy.)
>
> Abstract out operations specific to particular C++ ABI's, and
> invoke them through a function table. This removes the C++ ABI
> dependencies scattered throughout the code, and allows us to
> cleanly add support for new C++ ABI's.
>
> * cp-abi.h, cp-abi.h, gnu-v2-abi.c, hpacc-abi.c: New files.
>
> *NONE* of these files initialize the rtti_type field within the
> cp_abi_ops structure; they all let it default to 0.
>
> * c-typeprint.c, c-valprint.c, dbxread.c, eval.c, gdbtypes.c,
> jv-typeprint.c, linespec.c, symtab.c, typeprint.c, valops.c:
> #include "cp-abi.h".
>
> For c-valprint.c, eval.c, typeprint.c, and valops.c, it is unclear to
> me why you are including cp-abi.h.
Because they use functions which used to be declared elsewhere, but
are now declared in cp-abi.h. I've clarified the ChangeLog entry.