MIPS C++ bug
Daniel Jacobowitz
drow@mvista.com
Wed Jun 18 03:53:00 GMT 2003
On Tue, Jun 17, 2003 at 09:56:40PM -0400, Kris Warkentin wrote:
> > On Jun 17, 2003, <gp@qnx.com> wrote:
> >
> > > ./libsomelib.so: undefined reference to `SomeCls::DEF_INST'
> >
> > I'm afraid your program is in error. Even though SomeCls::DEF_INST is
> > a public static const int, initialized in place, a global definition
> > of every static data member is still mandatory. In case the
> > initializer in the declaration is given, the definition must not have
> > an initializer. I.e., add to one of your translation units the
> > following line:
> >
> > const int SomeCls::DEF_INST;
> >
> > and your program will be well-formed C++ per the current C++ Standard,
> > and, as a bonus, will likely link correctly too :-)
>
> That's very interesting but then it implies that the mips toolchain is the
> only one which is correct since this code works fine on all the others.
> Isn't mips being correct when all the others are wrong one of the signs of
> the coming apocalypse? *looks up at sky*
Sounds like an optimization deficiency; I believe the program is
allowed, but not required, to fail to compile.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
More information about the Gcc
mailing list