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