Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenCXX / dso-handle-custom.cpp
blobcca5eaf42a7278cd27133f32acc8e156a7136ecd
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
4 class A {
5 public:
6 ~A();
7 } a;
9 // CHECK-DEFAULT: @__dso_handle = global ptr @__dso_handle, align 8
10 // CHECK-HIDDEN: @__dso_handle = hidden global ptr @__dso_handle, align 8
11 // CHECK: define internal void @__cxx_global_var_init()
12 // CHECK: call i32 @__cxa_atexit({{.*}}, {{.*}}, ptr @__dso_handle)
14 #ifdef HIDDEN
15 void *__dso_handle __attribute__((__visibility__("hidden"))) = &__dso_handle;
16 #else
17 void *__dso_handle = &__dso_handle;
18 #endif
20 void use(void *);
21 void use_dso_handle() {
22 use(__dso_handle);