14d8871a8SBruno De Fraine // 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 24d8871a8SBruno De Fraine // 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 34d8871a8SBruno De Fraine 44d8871a8SBruno De Fraine #ifdef __cplusplus 54d8871a8SBruno De Fraine extern "C" { 64d8871a8SBruno De Fraine #endif 74d8871a8SBruno De Fraine 8*ed509fe2SAaron Ballman void t1(void); 94d8871a8SBruno De Fraine use(void)10*ed509fe2SAaron Ballmanvoid use(void) { t1(); } 114d8871a8SBruno De Fraine t1(void)12*ed509fe2SAaron Ballman__attribute__((nodebug)) void t1(void) { 134d8871a8SBruno De Fraine int a = 10; 144d8871a8SBruno De Fraine a++; 154d8871a8SBruno De Fraine } 164d8871a8SBruno De Fraine 174d8871a8SBruno De Fraine #ifdef __cplusplus 184d8871a8SBruno De Fraine } 194d8871a8SBruno De Fraine #endif 204d8871a8SBruno De Fraine 214d8871a8SBruno De Fraine // CHECK-LABEL: define{{.*}} void @use() 224d8871a8SBruno De Fraine // CHECK-SAME: !dbg 234d8871a8SBruno De Fraine // CHECK-SAME: { 244d8871a8SBruno De Fraine // CHECK: !dbg 254d8871a8SBruno De Fraine // CHECK: } 264d8871a8SBruno De Fraine 274d8871a8SBruno De Fraine // PR50767 Function __attribute__((nodebug)) inconsistency causes crash 284d8871a8SBruno De Fraine // illegal (non-distinct) !dbg metadata was being added to _Z2t1v definition 294d8871a8SBruno De Fraine 304d8871a8SBruno De Fraine // CHECK-LABEL: define{{.*}} void @t1() 314d8871a8SBruno De Fraine // CHECK-NOT: !dbg 324d8871a8SBruno De Fraine // CHECK-SAME: { 334d8871a8SBruno De Fraine // CHECK-NOT: !dbg 344d8871a8SBruno De Fraine // CHECK: } 35