1 // { dg-do run { target c++11 } }
2 // { dg-add-options tls }
3 // { dg-require-effective-target tls_runtime }
4 
5 extern "C" void abort();
6 
7 struct A
8 {
9   A();
10   int i;
11 };
12 
f()13 A &f()
14 {
15   thread_local A a;
16   return a;
17 }
18 
19 int j;
A()20 A::A(): i(j) { }
21 
main()22 int main()
23 {
24   j = 42;
25   if (f().i != 42)
26     abort ();
27 }
28