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