1 // RUN: %clang_cc1 -debug-info-kind=limited -emit-llvm -o - %s | FileCheck %s
2
3 void t1() __attribute__((nodebug));
4
t1()5 void t1()
6 {
7 int a = 10;
8 a++;
9 }
10
t2()11 void t2()
12 {
13 int b = 10;
14 b++;
15 }
16
17 // With nodebug, IR should have no llvm.dbg.* calls, or !dbg annotations.
18 // CHECK-LABEL: @t1
19 // CHECK-NOT: dbg
20 // CHECK: }
21
22 // For sanity, check those things do occur normally.
23 // CHECK-LABEL: @t2
24 // CHECK: call{{.*}}llvm.dbg
25 // CHECK: !dbg
26 // CHECK: }
27
28 // We should see a function description for t2 but not t1.
29 // CHECK-NOT: DISubprogram(name: "t1"
30 // CHECK: DISubprogram(name: "t2"
31 // CHECK-NOT: DISubprogram(name: "t1"
32
33