Invalid code generated from release 1.1.1 and snapshot 19990228

Martin v. Loewis martin@mira.isdn.cs.tu-berlin.de
Tue Mar 16 15:26:00 GMT 1999


> 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


More information about the Gcc-bugs mailing list