diff options
author | Steve Ellcey <sje@cup.hp.com> | 2006-06-02 17:39:28 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2006-06-02 17:39:28 +0000 |
commit | 8659e538c5782559a73228b9c04e1d44a0f21d6f (patch) | |
tree | 433802bb6dfcc146e74731ac8dc597b4bf86acfd /gcc | |
parent | 239559e797304a6b682ee1cd183ed81170e38356 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/init18.C | 12 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/init19.C | 2 | ||||
-rw-r--r-- | 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 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> |