From f1ec34bdfd0bb3e276dd9639c7e46bef6a8b09ea Mon Sep 17 00:00:00 2001 From: Shuxin Yang Date: Tue, 12 Nov 2013 08:33:03 +0000 Subject: [PATCH] Correct a glitch in r194424 which may invalidate iterator. llvm-svn: 194457 --- llvm/lib/Transforms/Scalar/GVN.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index d353765b42ae..6af269dfed32 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -2730,7 +2730,9 @@ void GVN::addDeadBlock(BasicBlock *BB) { if (DeadBlocks.count(B)) continue; - for (pred_iterator PI = pred_begin(B), PE = pred_end(B); PI != PE; PI++) { + SmallVector Preds(pred_begin(B), pred_end(B)); + for (SmallVectorImpl::iterator PI = Preds.begin(), + PE = Preds.end(); PI != PE; PI++) { BasicBlock *P = *PI; if (!DeadBlocks.count(P))