std::rethrow_exception is broken

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Mon Mar 31 14:05:00 GMT 2014


Hi Jonathan,

> On 31/03/14 14:13 +0200, Rainer Orth wrote:
>>
>>Unfortunately, the new tests FAIL on non-C99 targets (i386-pc-solaris2.9
>>in my case):
>>
>>FAIL: 18_support/exception_ptr/60612-terminate.cc (test for excess errors)
>>Excess errors:
>>/vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/18_support/exception_ptr/6061
>>2-terminate.cc:26:27: error: '_Exit' was not declared in this scope
>>
>>WARNING: 18_support/exception_ptr/60612-terminate.cc compilation failed to
>> produ
>>ce executable
>
> Sorry about that.
> Does Solaris 9 not support C99 at all, or does it only define _Exit
> when __STDC_VERSION__ has the right value?

no C99 support at all.  That only appeared in Solaris 10.

>>When looking into this, I noticed that this idiom is very widespread in
>>the v3 testsuite, but IMNSHO a *very bad* idea since it hides the fact
>>that many tests are acutually UNSUPPORTED, but appear to PASS, while the
>>only thing that passes is an empty main.  I had something similar
>>recently when all C99 functionality in libstdc++ got disabled, but
>>testsuite results barely changed.
>
> I completely agree it's a bad idea.
>
>>Unless someone strongly objects, I expect to change those tests to use
>>corresponding dg-require-* keywords to make mark them appropriately once
>>4.9 branches.
>
> I certainly don't object, but you should be aware that once we're in
> stage 1 I want to review all our uses of _GLIBCXX_USE_C99 and replace
> it with more fine-grained checks. We should at least have separate
> macros for:
>
> * "we can use the C99 library in C++11 mode"
> (true for a modern libc that checks for __cplusplus >= 201103L)
>
> * "we can use the C99 library in C++98 mode"
> (true for glibc, because we define _GNU_SOURCE)

Good to know, thanks for the heads-up.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University



More information about the Gcc-patches mailing list