xref: /llvm-project/clang/test/CodeGen/attr-nodebug2.c (revision ed509fe296375eb7c01d3d9aeec15cc784695210)
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