mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 18:26:05 +00:00

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
32 lines
1.1 KiB
C
32 lines
1.1 KiB
C
// 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"
|