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