| // 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 | |
| // 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 | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| void t1(void); | |
| void use(void) { t1(); } | |
| __attribute__((nodebug)) void t1(void) { | |
| int a = 10; | |
| a++; | |
| } | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| // CHECK-LABEL: define{{.*}} void @use() | |
| // CHECK-SAME: !dbg | |
| // CHECK-SAME: { | |
| // CHECK: !dbg | |
| // CHECK: } | |
| // PR50767 Function __attribute__((nodebug)) inconsistency causes crash | |
| // illegal (non-distinct) !dbg metadata was being added to _Z2t1v definition | |
| // CHECK-LABEL: define{{.*}} void @t1() | |
| // CHECK-NOT: !dbg | |
| // CHECK-SAME: { | |
| // CHECK-NOT: !dbg | |
| // CHECK: } |