From 6c69a3d38c974f34bc38b08c4478402f2260e188 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 10 Oct 2017 10:33:45 +0000 Subject: [PATCH] [SCCP] Fix mem-sanitizer failure introduced by r315288. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315294 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/SCCP.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index b0f58367c94..ca46b9016df 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -1600,8 +1600,10 @@ static bool tryToReplaceWithConstantRange(SCCPSolver &Solver, Value *V) { if (!(V->getType()->isIntegerTy() && IV.isConstantRange())) return false; - for (auto &Use : V->uses()) { - auto *Icmp = dyn_cast(Use.getUser()); + for (auto UI = V->uses().begin(), E = V->uses().end(); UI != E;) { + // Advance the iterator here, as we might remove the current use. + const Use &U = *UI++; + auto *Icmp = dyn_cast(U.getUser()); if (!Icmp) continue; -- 2.49.0