From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/g++.old-deja/g++.other/init18.C | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/init18.C (limited to 'gcc/testsuite/g++.old-deja/g++.other/init18.C') diff --git a/gcc/testsuite/g++.old-deja/g++.other/init18.C b/gcc/testsuite/g++.old-deja/g++.other/init18.C new file mode 100644 index 000000000..db579452d --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/init18.C @@ -0,0 +1,42 @@ +// 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 } +// { dg-require-effective-target unwrapped } +// { dg-require-effective-target cxa_atexit } + +#include +extern "C" void _exit (int); + +static int cnt = 0; + +class Foo2 +{ + public: + Foo2() {} + ~Foo2() { if (++cnt == 2) _exit (0); } +}; + +static Foo2& GetFoo2() +{ + static Foo2 foo2; + return foo2; +} + +class Foo1 +{ + public: + Foo1() {} + ~Foo1() { if (++cnt != 1) abort(); GetFoo2(); } +}; + +int main( int argc, const char* argv[] ) +{ + static Foo1 anotherFoo; + exit (1); +} + -- cgit v1.2.3