24 lines
		
	
	
		
			855 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			855 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -fexceptions %s -o - | FileCheck %s --check-prefixes CHECK,CHECK-DEFAULT
 | 
						|
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -fexceptions %s -o - -DHIDDEN | FileCheck %s --check-prefixes CHECK,CHECK-HIDDEN
 | 
						|
 | 
						|
class A {
 | 
						|
public:
 | 
						|
  ~A();
 | 
						|
} a;
 | 
						|
 | 
						|
// CHECK-DEFAULT: @__dso_handle = global i8* bitcast (i8** @__dso_handle to i8*), align 8
 | 
						|
// CHECK-HIDDEN: @__dso_handle = hidden global i8* bitcast (i8** @__dso_handle to i8*), align 8
 | 
						|
// CHECK: define internal void @__cxx_global_var_init()
 | 
						|
// CHECK:   call i32 @__cxa_atexit({{.*}}, {{.*}}, i8* bitcast (i8** @__dso_handle to i8*))
 | 
						|
 | 
						|
#ifdef HIDDEN
 | 
						|
void *__dso_handle __attribute__((__visibility__("hidden"))) = &__dso_handle;
 | 
						|
#else
 | 
						|
void *__dso_handle = &__dso_handle;
 | 
						|
#endif
 | 
						|
 | 
						|
void use(void *);
 | 
						|
void use_dso_handle() {
 | 
						|
  use(__dso_handle);
 | 
						|
}
 |