mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-20 12:05:48 -04:00

This reverts commit004ed2b0d1
. Original commit hash6d03890384
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"
|