1 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -fexceptions %s -o - | FileCheck %s --check-prefixes CHECK,CHECK-DEFAULT 2 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -fexceptions %s -o - -DHIDDEN | FileCheck %s --check-prefixes CHECK,CHECK-HIDDEN 3 4 class A { 5 public: 6 ~A(); 7 } a; 8 9 // CHECK-DEFAULT: @__dso_handle = global i8* bitcast (i8** @__dso_handle to i8*), align 8 10 // CHECK-HIDDEN: @__dso_handle = hidden global i8* bitcast (i8** @__dso_handle to i8*), align 8 11 // CHECK: define internal void @__cxx_global_var_init() 12 // CHECK: call i32 @__cxa_atexit({{.*}}, {{.*}}, i8* bitcast (i8** @__dso_handle to i8*)) 13 14 #ifdef HIDDEN 15 void *__dso_handle __attribute__((__visibility__("hidden"))) = &__dso_handle; 16 #else 17 void *__dso_handle = &__dso_handle; 18 #endif 19 20 void use(void *); 21 void use_dso_handle() { 22 use(__dso_handle); 23 } 24