* g++.dg/tls/thread_local-order1.C: Add dg-require-cxa-atexit.
[official-gcc.git] / gcc / testsuite / g++.dg / tls / thread_local-order1.C
blob70e71bfab33eefb68b1d0a06203421e9f37b66f1
1 // { dg-do run }
2 // { dg-options "-std=c++11" }
3 // { dg-require-effective-target tls_runtime }
4 // { dg-require-alias }
5 // { dg-require-cxa-atexit "" }
7 extern "C" void abort();
8 extern "C" int printf (const char *, ...);
9 #define printf(...)
11 int c;
12 struct A {
13   int i;
14   A(int i): i(i) { printf ("A(%d)\n", i); if (i != c++) abort (); }
15   ~A() { printf("~A(%d)\n", i); if (i != --c) abort(); }
18 A a0(0);
19 thread_local A a1(1);
20 thread_local A a2(2);
21 A* ap = &a1;
23 int main()
25   if (c != 3) abort();