blob: 30c8bfc680ebda48081c513896caf432d438d3cf [file] [log] [blame]
Nick Lewycky08597072012-07-24 01:40:49 +00001// 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();
David Blaikie41f56822013-08-26 20:33:16 +000015static int k = test();
Nick Lewycky08597072012-07-24 01:40:49 +000016
17int main(void) {}
18
Stephen Lin43622612013-08-15 06:47:53 +000019// CHECK-LABEL: define internal void @__cxx_global_var_init()
Nick Lewycky08597072012-07-24 01:40:49 +000020// CHECK-NOT: __cxx_global_var_init
Bill Wendling19457e22013-02-22 21:12:51 +000021// CHECK: %[[C0:.+]] = call i32 @_Z4testv(), !dbg ![[LINE:.*]]
Nick Lewycky08597072012-07-24 01:40:49 +000022// CHECK-NOT: __cxx_global_var_init
NAKAMURA Takumi3c726212012-07-24 02:03:39 +000023// CHECK: store i32 %[[C0]], i32* @_ZL1i, align 4, !dbg
Nick Lewycky08597072012-07-24 01:40:49 +000024//
Stephen Lin43622612013-08-15 06:47:53 +000025// CHECK-LABEL: define internal void @__cxx_global_var_init1()
Nick Lewycky08597072012-07-24 01:40:49 +000026// CHECK-NOT: dbg
NAKAMURA Takumi3c726212012-07-24 02:03:39 +000027// CHECK: %[[C1:.+]] = call i32 @_Z4testv()
Nick Lewycky08597072012-07-24 01:40:49 +000028// CHECK-NOT: dbg
NAKAMURA Takumi3c726212012-07-24 02:03:39 +000029// CHECK: store i32 %[[C1]], i32* @_ZL1j, align 4
David Blaikie41f56822013-08-26 20:33:16 +000030//
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
Nick Lewycky08597072012-07-24 01:40:49 +000036//
Eric Christophera2f7eb72012-10-18 21:52:18 +000037// CHECK: ![[LINE]] = metadata !{i32 13, i32
David Blaikie92848de2013-08-26 20:33:21 +000038// CHECK: ![[LINE2]] = metadata !{i32 15, i32