1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s -std=c++2a | FileCheck %s 2 3 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-pch -o %t.pch %s -std=c++2a 4 // RUN: %clang_cc1 -triple x86_64-apple-darwin -include-pch %t.pch -x c++ /dev/null -emit-llvm -o - -std=c++2a | FileCheck %s 5 6 struct B { BB7 constexpr B() {} ~BB8 constexpr ~B() { n *= 5; } 9 int n = 123; 10 }; 11 12 // We emit a dynamic destructor here because b.n might have been modified 13 // before b is destroyed. 14 // 15 // CHECK: @b = global {{.*}} i32 123 16 B b = B(); 17 18 // CHECK: define {{.*}}cxx_global_var_init 19 // CHECK: call {{.*}} @__cxa_atexit({{.*}} @_ZN1BD1Ev {{.*}} @b 20