diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-01-17 20:45:01 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-01-17 20:45:01 +0000 |
commit | 706b4fc47bbc608932d3b491ae19a3b9cde9497b (patch) | |
tree | 4adf86a776049cbf7f69a1929c4babcbbef925eb /llvm/lib/Bitstream/Reader/BitstreamReader.cpp | |
parent | 7cc9cf2bf09f069cb2dd947ead05d0b54301fb71 (diff) |
Notes
Diffstat (limited to 'llvm/lib/Bitstream/Reader/BitstreamReader.cpp')
-rw-r--r-- | llvm/lib/Bitstream/Reader/BitstreamReader.cpp | 38 |
1 files changed, 4 insertions, 34 deletions
diff --git a/llvm/lib/Bitstream/Reader/BitstreamReader.cpp b/llvm/lib/Bitstream/Reader/BitstreamReader.cpp index a4a97ced5457..92d7c91a1d35 100644 --- a/llvm/lib/Bitstream/Reader/BitstreamReader.cpp +++ b/llvm/lib/Bitstream/Reader/BitstreamReader.cpp @@ -88,37 +88,6 @@ static Expected<uint64_t> readAbbreviatedField(BitstreamCursor &Cursor, llvm_unreachable("invalid abbreviation encoding"); } -static Error skipAbbreviatedField(BitstreamCursor &Cursor, - const BitCodeAbbrevOp &Op) { - assert(!Op.isLiteral() && "Not to be used with literals!"); - - // Decode the value as we are commanded. - switch (Op.getEncoding()) { - case BitCodeAbbrevOp::Array: - case BitCodeAbbrevOp::Blob: - llvm_unreachable("Should not reach here"); - case BitCodeAbbrevOp::Fixed: - assert((unsigned)Op.getEncodingData() <= Cursor.MaxChunkSize); - if (Expected<unsigned> Res = Cursor.Read((unsigned)Op.getEncodingData())) - break; - else - return Res.takeError(); - case BitCodeAbbrevOp::VBR: - assert((unsigned)Op.getEncodingData() <= Cursor.MaxChunkSize); - if (Expected<uint64_t> Res = - Cursor.ReadVBR64((unsigned)Op.getEncodingData())) - break; - else - return Res.takeError(); - case BitCodeAbbrevOp::Char6: - if (Expected<unsigned> Res = Cursor.Read(6)) - break; - else - return Res.takeError(); - } - return ErrorSuccess(); -} - /// skipRecord - Read the current record and discard it. Expected<unsigned> BitstreamCursor::skipRecord(unsigned AbbrevID) { // Skip unabbreviated records by reading past their entries. @@ -163,9 +132,10 @@ Expected<unsigned> BitstreamCursor::skipRecord(unsigned AbbrevID) { if (Op.getEncoding() != BitCodeAbbrevOp::Array && Op.getEncoding() != BitCodeAbbrevOp::Blob) { - if (Error Err = skipAbbreviatedField(*this, Op)) - return std::move(Err); - continue; + if (Expected<uint64_t> MaybeField = readAbbreviatedField(*this, Op)) + continue; + else + return MaybeField.takeError(); } if (Op.getEncoding() == BitCodeAbbrevOp::Array) { |