From 265feb61e7958d5987ea971b325bfd6a1d57858e Mon Sep 17 00:00:00 2001
From: sje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 2 Jun 2006 17:39:28 +0000
Subject: [PATCH] 	* g++.old-deja/g++.other/init5.C: XFAIL if cxa-atexit
 is false. 	* g++.old-deja/g++.other/init19.C: Ditto. 	*
 g++.old-deja/g++.other/init18.C: Ditto, plus change _Exit to _exit 	and
 add other platforms as expected failures.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114327 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog                       |  7 +++++++
 gcc/testsuite/g++.old-deja/g++.other/init18.C | 12 ++++++++++--
 gcc/testsuite/g++.old-deja/g++.other/init19.C |  2 +-
 gcc/testsuite/g++.old-deja/g++.other/init5.C  |  2 +-
 4 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 51992df1a01a..b6f36173028b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2006-06-02  Steve Ellcey  <sje@cup.hp.com>
+
+	* g++.old-deja/g++.other/init5.C: XFAIL if cxa-atexit is false.
+	* g++.old-deja/g++.other/init19.C: Ditto.
+	* g++.old-deja/g++.other/init18.C: Ditto, plus change _Exit to _exit
+	and add other platforms as expected failures.
+
 2006-06-01  Steve Ellcey  <sje@cup.hp.com>
 	
 	* lib/target-supports.exp (is-effective-target): Add cxa_atexit.
diff --git a/gcc/testsuite/g++.old-deja/g++.other/init18.C b/gcc/testsuite/g++.old-deja/g++.other/init18.C
index 64d9f3d24c4f..7a91a12d7df4 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/init18.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/init18.C
@@ -1,6 +1,14 @@
-// { dg-do run }
+// 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.
+//
+// Any platform that doesn't have proper __cxa_atexit support will also fail.
+//
+// { dg-do run { xfail { { mmix-knuth-mmixware xtensa-*-elf* arm*-*-elf arm*-*-eabi m68k-*-elf } || { ! cxa_atexit } } } }
 
 #include <stdlib.h>
+extern "C" void _exit (int);
 
 static int cnt = 0;
 
@@ -8,7 +16,7 @@ class Foo2
 {
 	public:
 		Foo2() {};
-		~Foo2() { if (++cnt == 2) _Exit (0); };
+		~Foo2() { if (++cnt == 2) _exit (0); };
 };
 
 static Foo2& GetFoo2()
diff --git a/gcc/testsuite/g++.old-deja/g++.other/init19.C b/gcc/testsuite/g++.old-deja/g++.other/init19.C
index 297ae781ec2c..6d9c8290ed37 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/init19.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/init19.C
@@ -1,4 +1,4 @@
-// { dg-do run }
+// { dg-do run { xfail { ! cxa_atexit } } }
 #include <stdlib.h>
 
 #define assert(x) do { if (! (x)) abort(); } while (0)
diff --git a/gcc/testsuite/g++.old-deja/g++.other/init5.C b/gcc/testsuite/g++.old-deja/g++.other/init5.C
index 27765dc11c71..7bb263a93c03 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/init5.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/init5.C
@@ -1,4 +1,4 @@
-// { dg-do run }
+// { dg-do run { xfail { ! cxa_atexit } } }
 // Objects must be destructed in decreasing cnt order
 // Original test attributed to James Kanze <jkanze@otelo.ibmmail.com>
 
-- 
GitLab