badalloc1.C: Robustify.

2004-11-26  Mark Mitchell  <mark@codesourcery.com>

	* g++.old-deja/g++.eh/badalloc1.C: Robustify.

From-SVN: r91352
This commit is contained in:
Mark Mitchell 2004-11-26 22:02:34 +00:00 committed by Joseph Myers
parent 9fcc7481f8
commit 3de878170d
2 changed files with 16 additions and 14 deletions

View File

@ -1,3 +1,7 @@
2004-11-26 Mark Mitchell <mark@codesourcery.com>
* g++.old-deja/g++.eh/badalloc1.C: Robustify.
2004-11-26 Richard Sandiford <rsandifo@redhat.com>
* gcc.dg/sibcall-[34].c: Remove MIPS xfails.

View File

@ -14,10 +14,9 @@ extern "C" void *memcpy(void *, const void *, size_t);
#ifdef STACK_SIZE
const int arena_size = 256;
#else
#ifdef __FreeBSD__
// FreeBSD with threads requires even more space at initialization time.
#include "bits/c++config.h"
#include "bits/gthr.h"
#if defined(__FreeBSD__) || defined(__sun__)
// FreeBSD with threads and Solaris with threads require even more
// space at initialization time.
const int arena_size = 131072;
#else
const int arena_size = 32768;
@ -105,16 +104,15 @@ void fn_catchthrow() throw(int)
int main()
{
#ifdef __FreeBSD__
// FreeBSD with threads fails the test unless each thread primes itself.
if (__gthread_active_p())
{
try{fn_throw();}
catch(int a){}
}
// This was added to test with well-known idiom to detect regressions here
// rather than always failing with -pthread.
#endif
/* On some systems (including FreeBSD and Solaris 2.10),
__cxa_get_globals will try to call "malloc" when threads are in
use. Therefore, we throw one exception up front so that
__cxa_get_globals is all set up. Ideally, this would not be
necessary, but it is a well-known idiom, and using this technique
means that we can still validate the fact that exceptions can be
thrown when malloc fails. */
try{fn_throw();}
catch(int a){}
fail = 1;