forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			35 lines
		
	
	
		
			917 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			917 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -triple x86_64-apple-macosx10.8 -std=c++1y -S -emit-llvm %s -o - | FileCheck %s
 | 
						|
 | 
						|
// CHECK: @a = internal thread_local global
 | 
						|
// CHECK: @_Z2vtIiE = linkonce_odr thread_local global i32 5
 | 
						|
// CHECK: @_ZZ3inlvE3loc = linkonce_odr thread_local global i32 0
 | 
						|
// CHECK: @_tlv_atexit({{.*}}@_ZN1AD1Ev
 | 
						|
// CHECK: call cxx_fast_tlscc i32* @_ZTW3ext()
 | 
						|
// CHECK: declare cxx_fast_tlscc i32* @_ZTW3ext()
 | 
						|
// CHECK: define weak_odr hidden cxx_fast_tlscc i32* @_ZTW2vtIiE()
 | 
						|
// CHECK: define weak_odr hidden cxx_fast_tlscc i32* @_ZTW2vtIvE()
 | 
						|
// CHECK: define {{.*}} @_ZTW1a
 | 
						|
 | 
						|
struct A {
 | 
						|
  ~A();
 | 
						|
};
 | 
						|
 | 
						|
thread_local A a;
 | 
						|
 | 
						|
extern thread_local int ext;
 | 
						|
int &get_ext() { return ext; }
 | 
						|
 | 
						|
template <typename T>
 | 
						|
thread_local int vt = 5;
 | 
						|
 | 
						|
int get_vt() { return vt<int>; }
 | 
						|
 | 
						|
inline int &inl() {
 | 
						|
  thread_local int loc;
 | 
						|
  return loc;
 | 
						|
}
 | 
						|
int &use_inl() { return inl(); }
 | 
						|
 | 
						|
template int vt<void>;
 | 
						|
int &get_vt_void() { return vt<void>; }
 |