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