diff options
author | vpushkar <vpushkar@ptsecurity.com> | 2016-03-16 17:32:15 +0300 |
---|---|---|
committer | vpushkar <vpushkar@ptsecurity.com> | 2016-03-16 17:32:15 +0300 |
commit | db43444b45a28842a4e6693e84250c9d69863c52 (patch) | |
tree | 26c6021dffa65d538f764e6a763ad9e45e60ffee | |
parent | bfc4714531978867a7f68a52f0b614b63f06a391 (diff) | |
download | klee-db43444b45a28842a4e6693e84250c9d69863c52.tar.gz |
push_back usage for values vector
-rw-r--r-- | lib/Module/PhiCleaner.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/Module/PhiCleaner.cpp b/lib/Module/PhiCleaner.cpp index eff3d495..2cf3ba4a 100644 --- a/lib/Module/PhiCleaner.cpp +++ b/lib/Module/PhiCleaner.cpp @@ -39,12 +39,16 @@ bool klee::PhiCleanerPass::runOnFunction(Function &f) { if (pi->getIncomingBlock(i) != reference->getIncomingBlock(i)) break; - if (i!=numBlocks) { - for (unsigned i=0; i<numBlocks; i++) { - pi->setIncomingBlock(i, reference->getIncomingBlock(i)); - pi->setIncomingValue(i, pi->getIncomingValueForBlock(reference->getIncomingBlock(i))); - } - changed = true; + if (i != numBlocks) { + std::vector<Value*> values; + values.reserve(numBlocks); + for (unsigned i = 0; i<numBlocks; i++) + values.push_back(pi->getIncomingValueForBlock(reference->getIncomingBlock(i))); + for (unsigned i = 0; i<numBlocks; i++) { + pi->setIncomingBlock(i, reference->getIncomingBlock(i)); + pi->setIncomingValue(i, values[i]); + } + changed = true; } // see if it uses any previously defined phi nodes |