diff options
| author | David Blaikie <dblaikie@gmail.com> | 2015-01-09 23:00:28 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2015-01-09 23:00:28 +0000 |
| commit | f353d3ecd0329884110a8bd39f28b5cc111c9a69 (patch) | |
| tree | 070b18a0745ca81118c1a5e32351cdcadcceb79e /clang/test/CodeGenCXX | |
| parent | a10379ad49b9a102d9f6ab1bdafba67dc42f430b (diff) | |
| download | bcm5719-llvm-f353d3ecd0329884110a8bd39f28b5cc111c9a69.tar.gz bcm5719-llvm-f353d3ecd0329884110a8bd39f28b5cc111c9a69.zip | |
Revert "DebugInfo: Generalize debug info location handling" and related commits
This reverts commit r225000, r225021, r225083, r225086, r225090.
The root change (r225000) still has several issues where it's caused
calls to be emitted without debug locations. This causes assertion
failures if/when those calls are inlined.
I'll work up some test cases and fixes before recommitting this.
llvm-svn: 225555
Diffstat (limited to 'clang/test/CodeGenCXX')
| -rw-r--r-- | clang/test/CodeGenCXX/PR20038.cpp | 8 | ||||
| -rw-r--r-- | clang/test/CodeGenCXX/debug-info-line.cpp | 30 | ||||
| -rw-r--r-- | clang/test/CodeGenCXX/debug-info-scope.cpp | 12 |
3 files changed, 11 insertions, 39 deletions
diff --git a/clang/test/CodeGenCXX/PR20038.cpp b/clang/test/CodeGenCXX/PR20038.cpp index d838dbc5109..5bae285a83a 100644 --- a/clang/test/CodeGenCXX/PR20038.cpp +++ b/clang/test/CodeGenCXX/PR20038.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple %itanium_abi_triple -g -mllvm -no-discriminators -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -g -emit-llvm %s -o - | FileCheck %s struct C { ~C(); @@ -8,7 +8,9 @@ extern bool b; // CHECK: call {{.*}}, !dbg [[DTOR_CALL2_LOC:![0-9]*]] // CHECK: [[FUN1:.*]] = {{.*}}; [ DW_TAG_subprogram ] {{.*}} [def] [fun1] // CHECK: [[FUN2:.*]] = {{.*}}; [ DW_TAG_subprogram ] {{.*}} [def] [fun2] -// CHECK: [[DTOR_CALL1_LOC]] = !{i32 [[@LINE+1]], i32 0, [[FUN1]], null} +// CHECK: [[DTOR_CALL1_LOC]] = !{i32 [[@LINE+2]], i32 0, [[FUN1_BLOCK:.*]], null} +// CHECK: [[FUN1_BLOCK]] = !{!"0xb{{[^,]*}}", {{[^,]*}}, [[FUN1]]} void fun1() { b && (C(), 1); } -// CHECK: [[DTOR_CALL2_LOC]] = !{i32 [[@LINE+1]], i32 0, [[FUN2]], null} +// CHECK: [[DTOR_CALL2_LOC]] = !{i32 [[@LINE+2]], i32 0, [[FUN2_BLOCK1:.*]], null} +// CHECK: [[FUN2_BLOCK1]] = !{!"0xb{{[^,]*}}", {{[^,]*}}, [[FUN2]]} bool fun2() { return (C(), b) && 0; } diff --git a/clang/test/CodeGenCXX/debug-info-line.cpp b/clang/test/CodeGenCXX/debug-info-line.cpp index a4dff576efc..25231720f8b 100644 --- a/clang/test/CodeGenCXX/debug-info-line.cpp +++ b/clang/test/CodeGenCXX/debug-info-line.cpp @@ -1,5 +1,4 @@ // RUN: %clang_cc1 -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s -// RUN: %clang_cc1 -triple i686-linux-gnu -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s // XFAIL: win32 @@ -113,32 +112,6 @@ void f10() { new (void_src()) int(src())); } -// CHECK-LABEL: define -__complex double f11() { - __complex double f; -// CHECK: store {{.*}} !dbg [[DBG_F11:!.*]] -#line 1200 - return f; -} - -// CHECK-LABEL: define -void f12() { - int f12_1(); - void f12_2(int = f12_1()); -// CHECK: call {{(signext )?}}i32 {{.*}} !dbg [[DBG_F12:!.*]] -#line 1300 - f12_2(); -} - -// CHECK-LABEL: define -void f13() { -// CHECK: call {{.*}} !dbg [[DBG_F13:!.*]] -#define F13_IMPL 1, src() - 1, -#line 1400 - F13_IMPL; -} - // CHECK: [[DBG_F1]] = !{i32 100, // CHECK: [[DBG_FOO_VALUE]] = !{i32 200, // CHECK: [[DBG_FOO_REF]] = !{i32 202, @@ -153,6 +126,3 @@ void f13() { // CHECK: [[DBG_F9]] = !{i32 1000, // CHECK: [[DBG_F10_ICMP]] = !{i32 1100, // CHECK: [[DBG_F10_STORE]] = !{i32 1100, -// CHECK: [[DBG_F11]] = !{i32 1200, -// CHECK: [[DBG_F12]] = !{i32 1300, -// CHECK: [[DBG_F13]] = !{i32 1400, diff --git a/clang/test/CodeGenCXX/debug-info-scope.cpp b/clang/test/CodeGenCXX/debug-info-scope.cpp index e66588d699a..f72c4aa7cce 100644 --- a/clang/test/CodeGenCXX/debug-info-scope.cpp +++ b/clang/test/CodeGenCXX/debug-info-scope.cpp @@ -36,12 +36,12 @@ void func() { // CHECK: = !{!"0x100\00{{.*}}", [[FOR:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [i] [line [[@LINE+2]]] // CHECK: [[FOR]] = !{!"0xb\00[[@LINE+1]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ] for (int i = 0; i != 10; ++i) { - // FIXME: Do not include scopes that have only other scopes (and no variables - // or using declarations) as direct children, they just waste - // space/relocations/etc. - // CHECK: [[FOR_LOOP_INCLUDING_COND:!.*]] = !{!"0xb\00[[@LINE-4]]\00{{.*}}", !{{[0-9]+}}, [[FOR]]} ; [ DW_TAG_lexical_block ] - // CHECK: = !{!"0x100\00{{.*}}", [[FOR_COMPOUND:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [b] [line [[@LINE+2]]] - // CHECK: [[FOR_COMPOUND]] = !{!"0xb\00[[@LINE-6]]\00{{.*}}", !{{[0-9]+}}, [[FOR_LOOP_INCLUDING_COND]]} ; [ DW_TAG_lexical_block ] + // FIXME: Do not include scopes that have only other scopes (and no variables + // or using declarations) as direct children, they just waste + // space/relocations/etc. + // CHECK: = !{!"0x100\00{{.*}}", [[FOR_COMPOUND:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [b] [line [[@LINE+3]]] + // CHECK: [[FOR_COMPOUND]] = !{!"0xb\00[[@LINE-5]]\00{{.*}}", !{{[0-9]+}}, [[FOR_BODY:![0-9]+]]} ; [ DW_TAG_lexical_block ] + // CHECK: [[FOR_BODY]] = !{!"0xb\00[[@LINE-6]]\00{{.*}}", !{{[0-9]+}}, [[FOR]]} ; [ DW_TAG_lexical_block ] bool b = i % 2; } |

