This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa-20020619-branch] current status report on i386-*-freebsd4*
On Wed, Feb 25, 2004 at 01:39:58PM +0100, Steven Bosscher wrote:
> On Wednesday 25 February 2004 11:54, Christian Ehrhardt wrote:
> > On Wed, Feb 18, 2004 at 12:13:36AM +0100, Gerald Pfeifer wrote:
> > > Steven has started to look at this a bit, but basically it seems to be
> > > a compiler issue, not a libstdc++ issue. If you could provide the
> > > libstdc++ folks with a small testcase (mine are *huge*) that probably
> > > would help a lot!
> > Maybe 14272 is related. This causes tons of libstdc++ testsuite failures
> > on sparc because runtime datastructures like std::cout are never
> > initialized. Check if __exchange_and_add from atomicity.h is miscompiled!
> It's not related, but it does fail. Also on i686 btw.
Yes, the reduced testcase in the PR should fail on virtually any
platform. But some CPUs (i386 and sparc32) use code that triggers
this bug in libstdc++-v3/config/cpu/*/atomicity.h whereas others
don't (e.g. i686) because they have optimized assembler versions.
I'm pretty much sure that that the i386-Version of __exchange_and_add
will be miscompiled and cause various libstdc++-v3 testsuite failures.
Note that __exchange_and_add is in turn used to make sure that things like
std::cout is initialized exactly once. With the miscompilation the
initilization never happens which leads to various interesting failures.
THAT'S ALL FOLKS!