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