Merged revisions 208012,208018-208019,208021,208023-208030,208033,208037,208040-20804...
[official-gcc.git] / main / gcc / testsuite / g++.dg / tls / thread_local6g.C
blobf261d5419c76b0ee41af86ee5493ef998b1a1f9f
1 // Test for cleanups in the main thread without -pthread.
3 // { dg-do run { target c++11 } }
4 // { dg-add-options tls }
5 // { dg-require-effective-target tls_runtime }
6 // { dg-require-cxa-atexit "" }
8 extern "C" void _exit (int);
10 int c;
11 struct A
13   A() { ++c; }
14   ~A() { if (c == 1) _exit(0); }
17 thread_local A a;
19 void *thread_main(void *)
21   A* ap = &a;
24 int main()
26   thread_main(0);
28   // The dtor for a in the main thread is run after main exits, so we
29   // return 1 now and override the return value with _exit above.
30   return 1;