[lug] g++ question: dynamic casts?

Tom Tromey tromey at redhat.com
Wed Jan 30 22:55:22 MST 2002


>>>>> "Ed" == Ed Hill <ed at eh3.com> writes:

Ed> The GCC folks do try to maintain (or is it guarantee?) name
Ed> mangling compatibility within a release series but will sometimes
Ed> break it for new release series.

I'm not so sure about this historically.  It's probable that no two
g++ releases have been binary compatible.  I'm not that certain about
the history though.  What I do know is that gcc 3.0 has a new
cross-platform C++ ABI which is intended not to change.  Of course
there might be bugs, but now at least there is a spec by which to
measure them.

Ed> AFAIK, RH GCC 2.96 was a snapshot of the 3.x development tree and,
Ed> as such, is not C++-name-mangling-compatible with the 2.95.x
Ed> series and is *perhaps* not 100% C++-name-mangling-compatible with
Ed> the final 3.x series, either.

Yes.

Ed> Also I *think* I read that the C name mangling is nearly 100%
Ed> compatible between the 2.95.x, 2.96, and 3.x series.

C doesn't have name mangling in the C++ sense.

And name mangling is only one issue in the C++ ABI.  There is also
object layout, vtable layout, exception handling, RTTI, and perhaps
other things of which I'm thankfully ignorant.  You might consider the
C++ ABI to be a superset of the C ABI.

Tom



More information about the LUG mailing list