diff options
Diffstat (limited to 'llvm/lib/Bitcode')
-rw-r--r-- | llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp index 89edbbef92e..4a5d18e2db7 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp @@ -1561,6 +1561,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment( return error("Invalid record"); SmallVector<uint64_t, 64> Record; + PlaceholderQueue Placeholders; while (true) { BitstreamEntry Entry = Stream.advanceSkippingSubblocks(); @@ -1570,6 +1571,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment( case BitstreamEntry::Error: return error("Malformed block"); case BitstreamEntry::EndBlock: + resolveForwardRefsAndPlaceholders(Placeholders); return Error::success(); case BitstreamEntry::Record: // The interesting case. @@ -1608,7 +1610,6 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment( !MetadataList.lookup(Idx)) { // Load the attachment if it is in the lazy-loadable range and hasn't // been loaded yet. - PlaceholderQueue Placeholders; lazyLoadOneMetadata(Idx, Placeholders); resolveForwardRefsAndPlaceholders(Placeholders); } |