r176901 - Eliminate backend dependency in CFE testcase.
Adrian Prantl
aprantl at apple.com
Tue Mar 12 14:40:00 PDT 2013
Author: adrian
Date: Tue Mar 12 16:40:00 2013
New Revision: 176901
URL: http://llvm.org/viewvc/llvm-project?rev=176901&view=rev
Log:
Eliminate backend dependency in CFE testcase.
Modified:
cfe/trunk/test/CodeGenCXX/debug-info-same-line.cpp
Modified: cfe/trunk/test/CodeGenCXX/debug-info-same-line.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-same-line.cpp?rev=176901&r1=176900&r2=176901&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-same-line.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-same-line.cpp Tue Mar 12 16:40:00 2013
@@ -1,8 +1,8 @@
-// RUN: %clang_cc1 -g -emit-obj -o %t %s
-// RUN: llvm-dwarfdump %t | FileCheck %s
-// In the attached test case a post-r166236 clang coalesces two
-// instances of an inlined function in a way that makes it appear as
-// if the function was only inlined once.
+// RUN: %clang_cc1 -g -emit-llvm -o - %s | FileCheck %s
+
+// Make sure that clang outputs distinct debug info for a function
+// that is inlined twice on the same line. Otherwise it would appear
+// as if the function was only inlined once.
#define INLINE inline __attribute__((always_inline))
@@ -55,12 +55,27 @@ main(int argc, char const *argv[])
return 0;
}
-// CHECK: DW_TAG_inlined_subroutine
-// CHECK: DW_TAG_inlined_subroutine
-// CHECK: DW_TAG_inlined_subroutine
-// CHECK: DW_TAG_inlined_subroutine
-// CHECK-NOT: DW_TAG_inlined_subroutine
-// CHECK: DW_AT_call_line {{.*}} (0x2a)
-// CHECK: DW_TAG_inlined_subroutine
-// CHECK-NOT: DW_TAG_inlined_subroutine
-// CHECK: DW_AT_call_line {{.*}} (0x2a)
+// CHECK: define i32 @_Z3fooii(i32 %i, i32 %j)
+// i
+// CHECK: call void @llvm.dbg.declare
+// j
+// CHECK: call void @llvm.dbg.declare
+// x
+// CHECK: call void @llvm.dbg.declare
+// y
+// CHECK: call void @llvm.dbg.declare
+// result
+// CHECK: call void @llvm.dbg.declare
+
+// CHECK: call void @llvm.dbg.declare(metadata !{i32* %{{.*}}}, metadata ![[A_MD:[0-9]+]]), !dbg ![[A_DI:[0-9]+]]
+// CHECK: call void @llvm.dbg.declare(metadata !{i32* %{{.*}}}, metadata ![[B_MD:[0-9]+]]), !dbg ![[B_DI:[0-9]+]]
+// result
+// CHECK: call void @llvm.dbg.declare
+
+// We want to see a distinct !dbg node.
+// CHECK-NOT: call void @llvm.dbg.declare(metadata !{i32* %{{.*}}}, metadata ![[A_MD]]), !dbg ![[A_DI]]
+// CHECK: call void @llvm.dbg.declare(metadata !{i32* %{{.*}}}, metadata ![[A_MD]]), !dbg !{{.*}}
+// CHECK-NOT: call void @llvm.dbg.declare(metadata !{i32* %{{.*}}}, metadata ![[B_MD]]), !dbg ![[B_DI]]
+// CHECK: call void @llvm.dbg.declare(metadata !{i32* %{{.*}}}, metadata ![[B_MD]]), !dbg !{{.*}}
+// result
+// CHECK: call void @llvm.dbg.declare
More information about the cfe-commits
mailing list