xref: /llvm-project/clang/test/CodeGen/nodebug-attr.c (revision fd739804e0591468762eb87488a497a3f7d4afb0)
1361e4f14SYaxun (Sam) Liu // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm %s -O3 \
2361e4f14SYaxun (Sam) Liu // RUN:   -debug-info-kind=limited -o - -debugger-tuning=gdb -dwarf-version=4 \
3361e4f14SYaxun (Sam) Liu // RUN:   | FileCheck %s
4361e4f14SYaxun (Sam) Liu 
5361e4f14SYaxun (Sam) Liu // Makes sure there is no !dbg between function attributes and '{'.
6*fd739804SFangrui Song // CHECK-LABEL: define{{.*}} void @foo{{.*}} #{{[0-9]+}} {
7361e4f14SYaxun (Sam) Liu // CHECK-NOT: ret {{.*}}!dbg
foo(int * a)8361e4f14SYaxun (Sam) Liu __attribute__((nodebug)) void foo(int *a) {
9361e4f14SYaxun (Sam) Liu   *a = 1;
10361e4f14SYaxun (Sam) Liu }
11361e4f14SYaxun (Sam) Liu 
12361e4f14SYaxun (Sam) Liu // CHECK-LABEL: define {{.*}}@bar{{.*}}!dbg
bar(int * a)13361e4f14SYaxun (Sam) Liu void bar(int *a) {
14361e4f14SYaxun (Sam) Liu   foo(a);
15361e4f14SYaxun (Sam) Liu }
16