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