summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-12-10 01:16:09 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-12-10 01:16:09 +0000
commitd85548d423409e11204f60b5d76f61a779d41b09 (patch)
treec5001d3d5bdc560f7cec44ba329c9966601526e9
parent96d7732b08dfb61e9c15ee6f0dd0550aeae1fcfc (diff)
downloadbcm5719-llvm-d85548d423409e11204f60b5d76f61a779d41b09.tar.gz
bcm5719-llvm-d85548d423409e11204f60b5d76f61a779d41b09.zip
DebugInfo: Fix another case of array access line information
llvm-svn: 223897
-rw-r--r--clang/lib/CodeGen/CGExpr.cpp3
-rw-r--r--clang/test/CodeGenCXX/debug-info-line.cpp10
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index e7caf835ce2..ca06e852d0f 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -2452,6 +2452,9 @@ LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E,
// Propagate the alignment from the array itself to the result.
ArrayAlignment = ArrayLV.getAlignment();
+ if (auto *DI = getDebugInfo())
+ DI->EmitLocation(Builder, E->getLocStart());
+
if (getLangOpts().isSignedOverflowDefined())
Address = Builder.CreateGEP(ArrayPtr, Args, "arrayidx");
else
diff --git a/clang/test/CodeGenCXX/debug-info-line.cpp b/clang/test/CodeGenCXX/debug-info-line.cpp
index 396a3f77501..33c188af590 100644
--- a/clang/test/CodeGenCXX/debug-info-line.cpp
+++ b/clang/test/CodeGenCXX/debug-info-line.cpp
@@ -81,6 +81,15 @@ void f7() {
src1())[src2()];
}
+// CHECK-LABEL: define
+void f8() {
+ int src1[1];
+ int src2();
+#line 900
+ int x = ( // CHECK: load {{.*}} !dbg [[DBG_F8:!.*]]
+ src1)[src2()];
+}
+
// CHECK: [[DBG_F1]] = metadata !{i32 100,
// CHECK: [[DBG_FOO_VALUE]] = metadata !{i32 200,
// CHECK: [[DBG_FOO_REF]] = metadata !{i32 202,
@@ -91,3 +100,4 @@ void f7() {
// CHECK: [[DBG_F5]] = metadata !{i32 600,
// CHECK: [[DBG_F6]] = metadata !{i32 700,
// CHECK: [[DBG_F7]] = metadata !{i32 800,
+// CHECK: [[DBG_F8]] = metadata !{i32 900,
OpenPOWER on IntegriCloud