diff options
author | Amy Huang <akhuang@google.com> | 2019-10-31 09:15:53 -0700 |
---|---|---|
committer | Amy Huang <akhuang@google.com> | 2019-11-04 09:15:26 -0800 |
commit | ab76cfdd200d35177df2042a1c0c7e86868d01bc (patch) | |
tree | 58cd05d4ee64a5839c6492207413b60d1478f4ab /clang/test/CodeGen/debug-info-no-inline-line-tables.c | |
parent | 2c6fae179e6984c7330ff8a284d7a10ce142eef9 (diff) | |
download | bcm5719-llvm-ab76cfdd200d35177df2042a1c0c7e86868d01bc.tar.gz bcm5719-llvm-ab76cfdd200d35177df2042a1c0c7e86868d01bc.zip |
Recommit "[CodeView] Add option to disable inline line tables."
This reverts commit 004ed2b0d1b86d424643ffc88fce20ad8bab6804.
Original commit hash 6d03890384517919a3ba7fe4c35535425f278f89
Summary:
This adds a clang option to disable inline line tables. When it is used,
the inliner uses the call site as the location of the inlined function instead of
marking it as an inline location with the function location.
https://reviews.llvm.org/D67723
Diffstat (limited to 'clang/test/CodeGen/debug-info-no-inline-line-tables.c')
-rw-r--r-- | clang/test/CodeGen/debug-info-no-inline-line-tables.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/test/CodeGen/debug-info-no-inline-line-tables.c b/clang/test/CodeGen/debug-info-no-inline-line-tables.c new file mode 100644 index 00000000000..ac9216247c8 --- /dev/null +++ b/clang/test/CodeGen/debug-info-no-inline-line-tables.c @@ -0,0 +1,31 @@ +// RUN: %clang_cc1 -triple x86_64-windows-msvc -debug-info-kind=limited \ +// RUN: -gno-inline-line-tables -emit-llvm -o - %s | FileCheck %s +// RUN: %clang -gno-inline-line-tables -S -emit-llvm -o - %s | FileCheck %s \ +// RUN: -check-prefix=INLINE-FLAG +// RUN: %clang -S -emit-llvm -o - %s | FileCheck %s -check-prefix=NO-FLAG + +int x; +__attribute((always_inline)) void f() { + x += 1; +} +int main() { + f(); + x += 2; + return x; +} + +// Check that clang emits the location of the call site and not the inlined +// function in the debug info. +// CHECK: define dso_local i32 @main() +// CHECK: %{{.+}} = load i32, i32* @x, align 4, !dbg [[DbgLoc:![0-9]+]] + +// Check that the no-inline-line-tables attribute is added. +// CHECK: attributes #0 = {{.*}}"no-inline-line-tables"{{.*}} +// CHECK: attributes #1 = {{.*}}"no-inline-line-tables"{{.*}} + +// CHECK: [[DbgLoc]] = !DILocation(line: 12, +// CHECK-NOT: inlinedAt: + +// INLINE-FLAG: attributes #0 = {{.*}}"no-inline-line-tables"{{.*}} +// INLINE-FLAG: attributes #1 = {{.*}}"no-inline-line-tables"{{.*}} +// NO-FLAG-NOT: "no-inline-line-tables" |