1 | // RUN: %clang_cc1 -debug-info-kind=limited -emit-llvm -o - %s | FileCheck %s |
2 | |
3 | void t1() __attribute__((nodebug)); |
4 | |
5 | void t1() |
6 | { |
7 | int a = 10; |
8 | a++; |
9 | } |
10 | |
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 | |