static11.C: Skip on mmix-knuth-mmixware.

* g++.old-deja/g++.pt/static11.C: Skip on mmix-knuth-mmixware.
	* g++.dg/other/static11.C: Copy g++.old-deja/g++.pt/static11.C for
	-da test.

From-SVN: r51656
This commit is contained in:
Hans-Peter Nilsson 2002-03-31 15:49:29 +00:00 committed by Hans-Peter Nilsson
parent aa66aa5ff4
commit 820ecf563c
3 changed files with 44 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
* g++.old-deja/g++.pt/static11.C: Skip on mmix-knuth-mmixware.
* g++.dg/other/static11.C: Copy g++.old-deja/g++.pt/static11.C for
-da test.
2002-03-31 Richard Henderson <rth@redhat.com>
* gcc.dg/special/alias-2.c: New.

View File

@ -0,0 +1,32 @@
// This is a copy of g++.old-deja/g++.pt/static11.C which at one
// time got a SEGV for mmix-knuth-mmixware when compiled with
// -da (or either -dj or -df).
// { dg-do compile }
// { dg-options "-da" }
extern "C" void _exit (int);
int r = 1;
struct A
{
void f(){};
A(){ ++r; }
~A(){ r -= 2; _exit (r); }
};
template<class T>
struct C
{
C(){ a.f(); }
static A a;
};
template <class T> A C<T>::a;
typedef C<int> B;
int main()
{
C<int> c;
return r;
}

View File

@ -1,5 +1,11 @@
// Bug: g++ was failing to destroy C<int>::a because it was using two
// different sentry variables for construction and destruction.
//
// Some targets (e.g. those with "set_board_info needs_status_wrapper 1"
// in their dejagnu baseboard description) require that the status is
// final when exit is entered (or main returns), and not "overruled" by a
// destructor calling _exit. It's not really worth it to handle that.
// Skip if target: mmix-knuth-mmixware
extern "C" void _exit (int);