* g++.old-deja/g++.pt/static11.C: XFAIL on arm*-*-eabi.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.pt / static11.C
blob9fd537c2cc2fa3cee5d5537bd2a53cbdf83597d8
1 // Some targets (e.g. those with "set_board_info needs_status_wrapper 1"
2 // in their dejagnu baseboard description) require that the status is
3 // final when exit is entered (or main returns), and not "overruled" by a
4 // destructor calling _exit.  It's not really worth it to handle that.
5 // { dg-do run { xfail mmix-knuth-mmixware xtensa-*-elf* arm*-*-elf arm*-*-eabi } }
7 // Bug: g++ was failing to destroy C<int>::a because it was using two
8 // different sentry variables for construction and destruction.
10 extern "C" void _exit (int);
12 int r = 1;
14 struct A
16   void f(){};
17   A(){ ++r; }
18   ~A(){ r -= 2; _exit (r); }
21 template<class T>
22 struct C
24   C(){ a.f(); }
25   static A a;
28 template <class T> A C<T>::a;
29 typedef C<int> B;
31 int main()
33   C<int> c;
34   return r;