[lug] g++ question: dynamic casts?
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
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.
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.
More information about the LUG