* g++.dg/tls/thread_local-order1.C: Add dg-require-cxa-atexit.
[official-gcc.git] / gcc / testsuite / g++.dg / tls / thread_local6.C
blobdcbcef59665953bd5d4558dda85902e545385832
1 // Test for cleanups in the main thread without -pthread.
3 // { dg-do run { xfail *-*-solaris2.9 } }
4 // { dg-options "-std=c++11" }
5 // { dg-require-effective-target tls_runtime }
7 extern "C" void _exit (int);
9 int c;
10 struct A
12   A() { ++c; }
13   ~A() { if (c == 1) _exit(0); }
16 void f()
18   thread_local A a;
21 void *thread_main(void *)
23   f(); f(); f();
26 int main()
28   thread_main(0);
30   // The dtor for a in the main thread is run after main exits, so we
31   // return 1 now and override the return value with _exit above.
32   return 1;