]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
static11.C: Skip on mmix-knuth-mmixware.
authorHans-Peter Nilsson <hp@bitrange.com>
Sun, 31 Mar 2002 15:49:29 +0000 (15:49 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Sun, 31 Mar 2002 15:49:29 +0000 (15:49 +0000)
* 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

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/static11.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/static11.C

index cec193ebe19ae203ed46df7f60bbc86f25a628f8..8015ae979302d32bdd083b61e1a1a2b6001fd2e3 100644 (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.
diff --git a/gcc/testsuite/g++.dg/other/static11.C b/gcc/testsuite/g++.dg/other/static11.C
new file mode 100644 (file)
index 0000000..08126f1
--- /dev/null
@@ -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;
+}
index 07e6fd71d0b3f1c0e53f5e73cabc05e11b5ba316..cb8a5241a1713c1cd63302ee42f76bfda2fd17f9 100644 (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);