Index: llvm/lib/Transforms/Scalar/SROA.cpp =================================================================== --- llvm/lib/Transforms/Scalar/SROA.cpp +++ llvm/lib/Transforms/Scalar/SROA.cpp @@ -3799,6 +3799,9 @@ getAdjustedAlignment(&SI, 0), DL, IRB); Splitter.emitSplitOps(V->getType(), V, V->getName() + ".fca"); Visited.erase(&SI); + // The stores replacing SI each have markers describing fragments of the + // assignment so delete the assignment markers linked to SI. + at::deleteAssignmentMarkers(&SI); SI.eraseFromParent(); return true; } Index: llvm/test/DebugInfo/Generic/assignment-tracking/sroa/complex.ll =================================================================== --- llvm/test/DebugInfo/Generic/assignment-tracking/sroa/complex.ll +++ llvm/test/DebugInfo/Generic/assignment-tracking/sroa/complex.ll @@ -1,4 +1,5 @@ -; RUN: opt -passes=sroa -S -o - %s | FileCheck %s +; RUN: opt -passes=sroa -S -o - %s \ +; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg" ; ;; Based on llvm/test/DebugInfo/ARM/sroa-complex.ll ;; generated from: