From: Luofan Chen Date: Sat, 15 Aug 2020 15:04:11 +0000 (+0800) Subject: [Attributor][NFC] Use indexes instead of iterator X-Git-Tag: llvmorg-13-init~14628 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b7448a348bb863365b3d4652010a29efedd8f2e7;p=platform%2Fupstream%2Fllvm.git [Attributor][NFC] Use indexes instead of iterator When adding elements when iterating, the iterator will become valid, which could cause errors. This fixes the issue by using indexes instead of iterator. --- diff --git a/llvm/lib/Transforms/IPO/Attributor.cpp b/llvm/lib/Transforms/IPO/Attributor.cpp index 6599ff6..88e0655 100644 --- a/llvm/lib/Transforms/IPO/Attributor.cpp +++ b/llvm/lib/Transforms/IPO/Attributor.cpp @@ -2204,8 +2204,9 @@ static bool runAttributorOnFunctions(InformationCache &InfoCache, // TODO: for now we eagerly internalize functions without calculating the // cost, we need a cost interface to determine whether internalizing // a function is "benefitial" - if (AllowDeepWrapper) { - for (Function *F : Functions) + if (AllowDeepWrapper) + for (unsigned u = 0; u < Functions.size(); u ++) { + Function *F = Functions[u]; if (!F->isDeclaration() && !F->isDefinitionExact() && F->getNumUses() && !GlobalValue::isInterposableLinkage(F->getLinkage())) { Function *NewF = internalizeFunction(*F); @@ -2219,7 +2220,7 @@ static bool runAttributorOnFunctions(InformationCache &InfoCache, CGUpdater.reanalyzeFunction(*CallerF); } } - } + } for (Function *F : Functions) { if (F->hasExactDefinition())