DebugInfo: Fix another case of array access line information
llvm-svn: 223897
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index e7caf83..ca06e85 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -2452,6 +2452,9 @@
// 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 396a3f7..33c188a 100644
--- a/clang/test/CodeGenCXX/debug-info-line.cpp
+++ b/clang/test/CodeGenCXX/debug-info-line.cpp
@@ -81,6 +81,15 @@
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 @@
// CHECK: [[DBG_F5]] = metadata !{i32 600,
// CHECK: [[DBG_F6]] = metadata !{i32 700,
// CHECK: [[DBG_F7]] = metadata !{i32 800,
+// CHECK: [[DBG_F8]] = metadata !{i32 900,