xref: /aosp_15_r20/external/clang/test/CodeGenCXX/debug-info-globalinit.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -triple x86_64-apple-darwin10.0.0 -emit-llvm -o - %s -std=c++11 -debug-info-kind=limited | FileCheck %s
2*67e74705SXin Li 
crash()3*67e74705SXin Li void crash() {
4*67e74705SXin Li   volatile char *ptr = 0;
5*67e74705SXin Li   char x = *ptr;
6*67e74705SXin Li }
7*67e74705SXin Li 
test()8*67e74705SXin Li int test() {
9*67e74705SXin Li   crash();
10*67e74705SXin Li   return 1;
11*67e74705SXin Li }
12*67e74705SXin Li 
13*67e74705SXin Li static int i = test();
14*67e74705SXin Li __attribute__((nodebug)) static int j = test();
15*67e74705SXin Li static int k = test();
16*67e74705SXin Li 
main(void)17*67e74705SXin Li int main(void) {}
18*67e74705SXin Li 
19*67e74705SXin Li // CHECK-LABEL: define internal void @__cxx_global_var_init()
20*67e74705SXin Li // CHECK-NOT: __cxx_global_var_init
21*67e74705SXin Li // CHECK: %[[C0:.+]] = call i32 @_Z4testv(), !dbg ![[LINE:.*]]
22*67e74705SXin Li // CHECK-NOT: __cxx_global_var_init
23*67e74705SXin Li // CHECK: store i32 %[[C0]], i32* @_ZL1i, align 4, !dbg
24*67e74705SXin Li //
25*67e74705SXin Li // CHECK-LABEL: define internal void @__cxx_global_var_init.1()
26*67e74705SXin Li // CHECK-NOT: dbg
27*67e74705SXin Li // CHECK: %[[C1:.+]] = call i32 @_Z4testv()
28*67e74705SXin Li // CHECK-NOT: dbg
29*67e74705SXin Li // CHECK: store i32 %[[C1]], i32* @_ZL1j, align 4
30*67e74705SXin Li //
31*67e74705SXin Li // CHECK-LABEL: define internal void @__cxx_global_var_init.2()
32*67e74705SXin Li // CHECK-NOT: __cxx_global_var_init
33*67e74705SXin Li // CHECK: %[[C2:.+]] = call i32 @_Z4testv(), !dbg ![[LINE2:.*]]
34*67e74705SXin Li // CHECK-NOT: __cxx_global_var_init
35*67e74705SXin Li // CHECK: store i32 %[[C2]], i32* @_ZL1k, align 4, !dbg
36*67e74705SXin Li //
37*67e74705SXin Li // CHECK: ![[LINE]] = !DILocation(line: 13,
38*67e74705SXin Li // CHECK: ![[LINE2]] = !DILocation(line: 15,
39