summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/debug-info-no-inline-line-tables.c
diff options
context:
space:
mode:
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.c31
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"
OpenPOWER on IntegriCloud