* g++.dg/tls/thread_local-order1.C: Add dg-require-cxa-atexit.
[official-gcc.git] / gcc / testsuite / g++.dg / tls / thread_local6g.C
blob3a680fb5eb851d8d21cdbbc112139ce75d9133c5
1 // Test for cleanups in the main thread without -pthread.
3 // { dg-do run }
4 // { dg-options "-std=c++11" }
5 // { dg-require-effective-target tls_runtime }
6 // { dg-require-cxa-atexit "" }
7 // { dg-require-alias }
9 extern "C" void _exit (int);
11 int c;
12 struct A
14   A() { ++c; }
15   ~A() { if (c == 1) _exit(0); }
18 thread_local A a;
20 void *thread_main(void *)
22   A* ap = &a;
25 int main()
27   thread_main(0);
29   // The dtor for a in the main thread is run after main exits, so we
30   // return 1 now and override the return value with _exit above.
31   return 1;