1 // RUN: %clang_cc1 -pedantic-errors -Wno-c11-extensions -std=c++11 -triple x86_64-linux-gnu -emit-pch %s -o %t
2 // RUN: %clang_cc1 -pedantic-errors -Wno-c11-extensions -std=c++11 -triple x86_64-linux-gnu -include-pch %t -verify %s
3 // REQUIRES: x86-registered-target
4 #ifndef HEADER_INCLUDED
5 
6 #define HEADER_INCLUDED
7 extern thread_local int a;
8 extern _Thread_local int b;
9 extern int c;
10 
11 #else
12 
13 _Thread_local int a; // expected-error {{thread-local declaration of 'a' with static initialization follows declaration with dynamic initialization}}
14 // expected-note@7 {{previous declaration is here}}
15 thread_local int b; // expected-error {{thread-local declaration of 'b' with dynamic initialization follows declaration with static initialization}}
16 // expected-note@8 {{previous declaration is here}}
17 thread_local int c; // expected-error {{thread-local declaration of 'c' follows non-thread-local declaration}}
18 // expected-note@9 {{previous declaration is here}}
19 
20 #endif
21