summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-03 12:20:34 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-03 12:20:34 +0000
commitd48e54c5eac9bcc11a499a627220f7a05841993a (patch)
treec8afa12f35628aef1816ac93c454200e7541bc9c /llvm/lib/Bitcode
parent097110f590b04ff2e1813b2adcbb525dab61bdb5 (diff)
downloadbcm5719-llvm-d48e54c5eac9bcc11a499a627220f7a05841993a.tar.gz
bcm5719-llvm-d48e54c5eac9bcc11a499a627220f7a05841993a.zip
Avoid a use after free.
llvm-svn: 241345
Diffstat (limited to 'llvm/lib/Bitcode')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index d9ac3ad7c64..09f0b689bdc 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -4459,7 +4459,10 @@ std::error_code BitcodeReader::materialize(GlobalValue *GV) {
// Upgrade any old intrinsic calls in the function.
for (auto &I : UpgradedIntrinsics) {
if (I.first != I.second) {
- for (auto *U : I.first->users()) {
+ for (auto UI = I.first->user_begin(), UE = I.first->user_end();
+ UI != UE;) {
+ User *U = *UI;
+ ++UI;
if (CallInst *CI = dyn_cast<CallInst>(U))
UpgradeIntrinsicCall(CI, I.second);
}
OpenPOWER on IntegriCloud