diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/contrib/llvm-project/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp b/contrib/llvm-project/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp index 9f735f77d29d..e133abe577c2 100644 --- a/contrib/llvm-project/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/contrib/llvm-project/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -230,6 +230,9 @@ static void predictValueUseListOrderImpl(const Value *V, const Function *F, static void predictValueUseListOrder(const Value *V, const Function *F, OrderMap &OM, UseListOrderStack &Stack) { + if (!V->hasUseList()) + return; + auto &IDPair = OM[V]; assert(IDPair.first && "Unmapped value"); if (IDPair.second) @@ -482,8 +485,8 @@ ValueEnumerator::ValueEnumerator(const Module &M, // Enumerate metadata attached with this instruction. MDs.clear(); I.getAllMetadataOtherThanDebugLoc(MDs); - for (unsigned i = 0, e = MDs.size(); i != e; ++i) - EnumerateMetadata(&F, MDs[i].second); + for (const auto &MD : MDs) + EnumerateMetadata(&F, MD.second); // Don't enumerate the location directly -- it has a special record // type -- but enumerate its operands. |
