aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitstream/Reader/BitstreamReader.cpp
diff options
context:
space:
mode:
authorJan Korous <jkorous@apple.com>2022-02-14 18:22:18 -0800
committerJan Korous <jkorous@apple.com>2022-02-15 17:12:38 -0800
commit4a794d848ce81f41c6e23a4d3d3f70c2d7d1baa4 (patch)
tree041be761dcf0b60be9bd886427192f131a2fc78e /llvm/lib/Bitstream/Reader/BitstreamReader.cpp
parent6280c29a870173601a7befb3b45f92025727c41d (diff)
downloadllvm-4a794d848ce81f41c6e23a4d3d3f70c2d7d1baa4.zip
llvm-4a794d848ce81f41c6e23a4d3d3f70c2d7d1baa4.tar.gz
llvm-4a794d848ce81f41c6e23a4d3d3f70c2d7d1baa4.tar.bz2
[Bitstream] Improve error propagation from ReadVBR
Differential Revision: https://reviews.llvm.org/D119307
Diffstat (limited to 'llvm/lib/Bitstream/Reader/BitstreamReader.cpp')
-rw-r--r--llvm/lib/Bitstream/Reader/BitstreamReader.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Bitstream/Reader/BitstreamReader.cpp b/llvm/lib/Bitstream/Reader/BitstreamReader.cpp
index b2da7e7..ac674e8 100644
--- a/llvm/lib/Bitstream/Reader/BitstreamReader.cpp
+++ b/llvm/lib/Bitstream/Reader/BitstreamReader.cpp
@@ -220,7 +220,9 @@ Expected<unsigned> BitstreamCursor::readRecord(unsigned AbbrevID,
uint32_t Code = MaybeCode.get();
Expected<uint32_t> MaybeNumElts = ReadVBR(6);
if (!MaybeNumElts)
- return MaybeNumElts.takeError();
+ return error(("Failed to read size: " +
+ toString(std::move(MaybeNumElts.takeError())))
+ .c_str());
uint32_t NumElts = MaybeNumElts.get();
if (!isSizePlausible(NumElts))
return error("Size is not plausible");
@@ -275,7 +277,9 @@ Expected<unsigned> BitstreamCursor::readRecord(unsigned AbbrevID,
// Array case. Read the number of elements as a vbr6.
Expected<uint32_t> MaybeNumElts = ReadVBR(6);
if (!MaybeNumElts)
- return MaybeNumElts.takeError();
+ return error(("Failed to read size: " +
+ toString(std::move(MaybeNumElts.takeError())))
+ .c_str());
uint32_t NumElts = MaybeNumElts.get();
if (!isSizePlausible(NumElts))
return error("Size is not plausible");