summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-line-if.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-08-15 21:11:25 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-08-15 21:11:25 +0000
commit0c8e3f2fddaf868e99edb49dc75a8c74ee97bd6d (patch)
treef04015e2ac5d3c4e9eee01b7a3baaa91e4f44511 /clang/test/CodeGenCXX/debug-info-line-if.cpp
parent0ee846ff3cf30ef625d6f781020deb90ff16c9c4 (diff)
downloadbcm5719-llvm-0c8e3f2fddaf868e99edb49dc75a8c74ee97bd6d.tar.gz
bcm5719-llvm-0c8e3f2fddaf868e99edb49dc75a8c74ee97bd6d.zip
DebugInfo: While loop backedge should be attribute to the start of the while statement.
A little test case simplification - this could be simplified further, though there are certainly interesting connections to the if/else construct so I'm hesitant to remove that entirely though it does appear somewhat unrelated. (similar fix to r215766, related to PR19864) llvm-svn: 215768
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-line-if.cpp')
-rw-r--r--clang/test/CodeGenCXX/debug-info-line-if.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-line-if.cpp b/clang/test/CodeGenCXX/debug-info-line-if.cpp
index 068e2a4a8c5..1ebe51cee5e 100644
--- a/clang/test/CodeGenCXX/debug-info-line-if.cpp
+++ b/clang/test/CodeGenCXX/debug-info-line-if.cpp
@@ -1,20 +1,31 @@
// RUN: %clang_cc1 -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s
// PR19864
+extern int v[2];
+int a = 0, b = 0;
int main() {
- int v[] = {13, 21, 8, 3, 34, 1, 5, 2};
- int a = 0, b = 0;
- for (int x : v)
- if (x >= 3)
- ++b; // CHECK: add nsw{{.*}}, 1
- else if (x >= 0)
- ++a; // CHECK: add nsw{{.*}}, 1
- // The continuation block if the if statement should not share the
- // location of the ++a statement. The branch back to the start of the loop
- // should be attributed to the loop header line.
+#line 100
+ for (int x : v)
+ if (x)
+ ++b; // CHECK: add nsw{{.*}}, 1
+ else
+ ++a; // CHECK: add nsw{{.*}}, 1
+ // The continuation block if the if statement should not share the
+ // location of the ++a statement. The branch back to the start of the loop
+ // should be attributed to the loop header line.
- // CHECK: br label
- // CHECK: br label
- // CHECK: br label {{.*}}, !dbg ![[DBG:.*]]
- // CHECK: ![[DBG]] = metadata !{i32 [[@LINE-12]], i32 0, metadata !{{.*}}, null}
+ // CHECK: br label
+ // CHECK: br label
+ // CHECK: br label {{.*}}, !dbg [[DBG1:!.*]]
+#line 200
+ while (a)
+ if (b)
+ ++b; // CHECK: add nsw{{.*}}, 1
+ else
+ ++a; // CHECK: add nsw{{.*}}, 1
+
+ // CHECK: br label
+ // CHECK: br label {{.*}}, !dbg [[DBG2:!.*]]
+ // CHECK: [[DBG1]] = metadata !{i32 100, i32 0, metadata !{{.*}}, null}
+ // CHECK: [[DBG2]] = metadata !{i32 200, i32 0, metadata !{{.*}}, null}
}
OpenPOWER on IntegriCloud