This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Invalid code generated from release 1.1.1 and snapshot 19990228
Martin,
thanks for the clarification. If the rules for mangling
array types did intentionally change, please just take
it as a bug report for c++filt then.
I guess, we'll have to get the suppliers of our libraries
to stay more closely in sync with compiler changes than
we/they would like. But that's of course a general problem
of C++. Also I do still remember what the 'e' in egcs stands
for and really appreciate the work that has been done to make egcs
what it is.
Thanks, Dirk
"Martin v. Loewis" wrote:
>
> > So setValue got a signature with an array of two instead
> > of an array of three elements.
>
> As explained in a private mail: This is a bug in c++filt. Since gcc
> 2.8 (or so), the constant in the array indicates the last index, i.e. one less than the number of elements.
>
> > If you link against an object file or lib generated with
> > e.g. g++ 2.7.2 the link fails since g++ generates the
> > correct symbol.
>
> So yes, g++ 2.7.2 and egcs are not binary compatible. This is
> unfortunate, but you typically need to recompile everything if you
> upgrade to a new major version of g++. Even more unfortunate, this
> won't be the last time we have to break binary compatibility.
>
> Regards,
> Martin