21 lines
		
	
	
		
			891 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			891 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// RUN: %clang_cc1 -pedantic-errors -std=c++11 -triple x86_64-linux-gnu -emit-pch %s -o %t
 | 
						|
// RUN: %clang_cc1 -pedantic-errors -std=c++11 -triple x86_64-linux-gnu -include-pch %t -verify %s
 | 
						|
 | 
						|
#ifndef HEADER_INCLUDED
 | 
						|
 | 
						|
#define HEADER_INCLUDED
 | 
						|
extern thread_local int a;
 | 
						|
extern _Thread_local int b;
 | 
						|
extern int c;
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
_Thread_local int a; // expected-error {{thread-local declaration of 'a' with static initialization follows declaration with dynamic initialization}}
 | 
						|
// expected-note@7 {{previous declaration is here}}
 | 
						|
thread_local int b; // expected-error {{thread-local declaration of 'b' with dynamic initialization follows declaration with static initialization}}
 | 
						|
// expected-note@8 {{previous declaration is here}}
 | 
						|
thread_local int c; // expected-error {{thread-local declaration of 'c' follows non-thread-local declaration}}
 | 
						|
// expected-note@9 {{previous declaration is here}}
 | 
						|
 | 
						|
#endif
 |