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