From 6918a9141e93aea51d542fc3e6da332140144f13 Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Tue, 27 May 2008 00:59:05 +0000 Subject: [PATCH] InequalityGraph::node() can create new nodes, invalidating iterators across the set of nodes. Fix makeEqual to handle this by creating the new node first then iterating across them second. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51573 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/PredicateSimplifier.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Transforms/Scalar/PredicateSimplifier.cpp b/lib/Transforms/Scalar/PredicateSimplifier.cpp index 9befdc7bc90..2672e4e762a 100644 --- a/lib/Transforms/Scalar/PredicateSimplifier.cpp +++ b/lib/Transforms/Scalar/PredicateSimplifier.cpp @@ -1594,6 +1594,7 @@ namespace { if (mergeIGNode) { // Create N1. if (!n1) n1 = VN.getOrInsertVN(V1, Top); + IG.node(n1); // Ensure that IG.Nodes won't get resized // Migrate relationships from removed nodes to N1. for (SetVector::iterator I = Remove.begin(), E = Remove.end();