1 // RUN: %clang_cc1 -x c -debug-info-kind=limited -debugger-tuning=gdb -dwarf-version=4 -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s
2 // RUN: %clang_cc1 -x c++ -debug-info-kind=limited -debugger-tuning=gdb -dwarf-version=4 -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 void t1(void);
9
use(void)10 void use(void) { t1(); }
11
t1(void)12 __attribute__((nodebug)) void t1(void) {
13 int a = 10;
14 a++;
15 }
16
17 #ifdef __cplusplus
18 }
19 #endif
20
21 // CHECK-LABEL: define{{.*}} void @use()
22 // CHECK-SAME: !dbg
23 // CHECK-SAME: {
24 // CHECK: !dbg
25 // CHECK: }
26
27 // PR50767 Function __attribute__((nodebug)) inconsistency causes crash
28 // illegal (non-distinct) !dbg metadata was being added to _Z2t1v definition
29
30 // CHECK-LABEL: define{{.*}} void @t1()
31 // CHECK-NOT: !dbg
32 // CHECK-SAME: {
33 // CHECK-NOT: !dbg
34 // CHECK: }
35