diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2021-10-25 13:56:43 -0700 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2021-10-25 16:03:40 -0700 |
commit | b12a864c2930acc6f71e3bf248b663470d356db5 (patch) | |
tree | f9486f1e4d15f33ffe16b14d13af4b1034dd30c0 /llvm/lib/Bitcode/Reader/MetadataLoader.cpp | |
parent | df05babc9606011fc9f4013b21ba6ed9fe4aa74c (diff) | |
download | llvm-b12a864c2930acc6f71e3bf248b663470d356db5.zip llvm-b12a864c2930acc6f71e3bf248b663470d356db5.tar.gz llvm-b12a864c2930acc6f71e3bf248b663470d356db5.tar.bz2 |
Bitcode: Use Expected<T>::takeError() and moveInto() more, NFC
Avoid naming some Expected<T> values in the Bitcode reader by using
takeError() and moveInto() more often. This follows the smaller set of
changes included in 2410fb4616b2c08bbaddd44e6c11da8285fbd1d3.
Diffstat (limited to 'llvm/lib/Bitcode/Reader/MetadataLoader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 70 |
1 files changed, 32 insertions, 38 deletions
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp index a2b495e..15e2386b 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp @@ -697,11 +697,12 @@ MetadataLoader::MetadataLoaderImpl::lazyLoadModuleMetadataBlock() { // Get the abbrevs, and preload record positions to make them lazy-loadable. while (true) { uint64_t SavedPos = IndexCursor.GetCurrentBitNo(); - Expected<BitstreamEntry> MaybeEntry = IndexCursor.advanceSkippingSubblocks( - BitstreamCursor::AF_DontPopBlockAtEnd); - if (!MaybeEntry) - return MaybeEntry.takeError(); - BitstreamEntry Entry = MaybeEntry.get(); + BitstreamEntry Entry; + if (Error E = + IndexCursor + .advanceSkippingSubblocks(BitstreamCursor::AF_DontPopBlockAtEnd) + .moveInto(Entry)) + return std::move(E); switch (Entry.Kind) { case BitstreamEntry::SubBlock: // Handled for us already. @@ -714,10 +715,9 @@ MetadataLoader::MetadataLoaderImpl::lazyLoadModuleMetadataBlock() { // The interesting case. ++NumMDRecordLoaded; uint64_t CurrentPos = IndexCursor.GetCurrentBitNo(); - Expected<unsigned> MaybeCode = IndexCursor.skipRecord(Entry.ID); - if (!MaybeCode) - return MaybeCode.takeError(); - unsigned Code = MaybeCode.get(); + unsigned Code; + if (Error E = IndexCursor.skipRecord(Entry.ID).moveInto(Code)) + return std::move(E); switch (Code) { case bitc::METADATA_STRINGS: { // Rewind and parse the strings. @@ -904,11 +904,12 @@ Expected<bool> MetadataLoader::MetadataLoaderImpl::loadGlobalDeclAttachments() { if (Error Err = TempCursor.JumpToBit(GlobalDeclAttachmentPos)) return std::move(Err); while (true) { - Expected<BitstreamEntry> MaybeEntry = TempCursor.advanceSkippingSubblocks( - BitstreamCursor::AF_DontPopBlockAtEnd); - if (!MaybeEntry) - return MaybeEntry.takeError(); - BitstreamEntry Entry = MaybeEntry.get(); + BitstreamEntry Entry; + if (Error E = + TempCursor + .advanceSkippingSubblocks(BitstreamCursor::AF_DontPopBlockAtEnd) + .moveInto(Entry)) + return std::move(E); switch (Entry.Kind) { case BitstreamEntry::SubBlock: // Handled for us already. @@ -1024,10 +1025,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadata(bool ModuleLevel) { // Read all the records. while (true) { - Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks(); - if (!MaybeEntry) - return MaybeEntry.takeError(); - BitstreamEntry Entry = MaybeEntry.get(); + BitstreamEntry Entry; + if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry)) + return E; switch (Entry.Kind) { case BitstreamEntry::SubBlock: // Handled for us already. @@ -1081,12 +1081,11 @@ void MetadataLoader::MetadataLoaderImpl::lazyLoadOneMetadata( GlobalMetadataBitPosIndex[ID - MDStringRef.size()])) report_fatal_error("lazyLoadOneMetadata failed jumping: " + Twine(toString(std::move(Err)))); - Expected<BitstreamEntry> MaybeEntry = IndexCursor.advanceSkippingSubblocks(); - if (!MaybeEntry) + BitstreamEntry Entry; + if (Error E = IndexCursor.advanceSkippingSubblocks().moveInto(Entry)) // FIXME this drops the error on the floor. report_fatal_error("lazyLoadOneMetadata failed advanceSkippingSubblocks: " + - Twine(toString(MaybeEntry.takeError()))); - BitstreamEntry Entry = MaybeEntry.get(); + Twine(toString(std::move(E)))); ++NumMDRecordLoaded; if (Expected<unsigned> MaybeCode = IndexCursor.readRecord(Entry.ID, Record, &Blob)) { @@ -1193,10 +1192,8 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata( // Read name of the named metadata. SmallString<8> Name(Record.begin(), Record.end()); Record.clear(); - Expected<unsigned> MaybeCode = Stream.ReadCode(); - if (!MaybeCode) - return MaybeCode.takeError(); - Code = MaybeCode.get(); + if (Error E = Stream.ReadCode().moveInto(Code)) + return E; ++NumMDRecordLoaded; if (Expected<unsigned> MaybeNextBitCode = Stream.readRecord(Code, Record)) { @@ -2147,10 +2144,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataStrings( if (R.AtEndOfStream()) return error("Invalid record: metadata strings bad length"); - Expected<uint32_t> MaybeSize = R.ReadVBR(6); - if (!MaybeSize) - return MaybeSize.takeError(); - uint32_t Size = MaybeSize.get(); + uint32_t Size; + if (Error E = R.ReadVBR(6).moveInto(Size)) + return E; if (Strings.size() < Size) return error("Invalid record: metadata strings truncated chars"); @@ -2187,10 +2183,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment( PlaceholderQueue Placeholders; while (true) { - Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks(); - if (!MaybeEntry) - return MaybeEntry.takeError(); - BitstreamEntry Entry = MaybeEntry.get(); + BitstreamEntry Entry; + if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry)) + return E; switch (Entry.Kind) { case BitstreamEntry::SubBlock: // Handled for us already. @@ -2291,10 +2286,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataKinds() { // Read all the records. while (true) { - Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks(); - if (!MaybeEntry) - return MaybeEntry.takeError(); - BitstreamEntry Entry = MaybeEntry.get(); + BitstreamEntry Entry; + if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry)) + return E; switch (Entry.Kind) { case BitstreamEntry::SubBlock: // Handled for us already. |