aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2006-06-02 17:39:28 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2006-06-02 17:39:28 +0000
commit8659e538c5782559a73228b9c04e1d44a0f21d6f (patch)
tree433802bb6dfcc146e74731ac8dc597b4bf86acfd /gcc
parent239559e797304a6b682ee1cd183ed81170e38356 (diff)
downloadgcc-8659e538c5782559a73228b9c04e1d44a0f21d6f.zip
gcc-8659e538c5782559a73228b9c04e1d44a0f21d6f.tar.gz
gcc-8659e538c5782559a73228b9c04e1d44a0f21d6f.tar.bz2
init5.C: XFAIL if cxa-atexit is false.
* 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. From-SVN: r114327
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/init18.C12
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/init19.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/init5.C2
4 files changed, 19 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 51992df..b6f3617 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 64d9f3d..7a91a12 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 297ae78..6d9c829 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 27765dc..7bb263a 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>