[PR c++/84702] ICE with default tmpl arg of overload set
[official-gcc.git] / gcc / testsuite / g++.dg / tls / thread_local6.C
blob0009726626b08a2f9bdcad37216c000bcf8fcd3d
1 // Test for cleanups in the main thread without -pthread.
3 /* wrapping doesn't reflect _exit value */
4 // { dg-do run { target { c++11 && unwrapped } } }
5 // { dg-add-options tls }
6 // { dg-require-effective-target tls_runtime }
8 extern "C" void _exit (int);
10 int c;
11 struct A
13   A() { ++c; }
14   ~A() { if (c == 1) _exit(0); }
17 void f()
19   thread_local A a;
22 void *thread_main(void *)
24   f(); f(); f();
25   return 0;
28 int main()
30   thread_main(0);
32   // The dtor for a in the main thread is run after main exits, so we
33   // return 1 now and override the return value with _exit above.
34   return 1;