summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
diff options
context:
space:
mode:
authorDenis Bakhvalov <denis.bakhvalov@intel.com>2019-07-17 23:28:39 +0000
committerDenis Bakhvalov <denis.bakhvalov@intel.com>2019-07-17 23:28:39 +0000
commit3eab4819f25afad53060e8d5bb97c7eab46bb586 (patch)
tree225363beb526c4fbd74ec2a74989db77652562c8 /llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
parent7bb5fc058314dba81dd652d8dcc74e133db0b445 (diff)
downloadbcm5719-llvm-3eab4819f25afad53060e8d5bb97c7eab46bb586.tar.gz
bcm5719-llvm-3eab4819f25afad53060e8d5bb97c7eab46bb586.zip
[llvm-bcanalyzer] Fixed error 'Expected<T> must be checked before access or destruction'
After rL365286 I had failing test: LLVM :: tools/gold/X86/v1.12/thinlto_emit_linked_objects.ll It was failing with the output: $ llvm-bcanalyzer --dump llvm/test/tools/gold/X86/v1.12/Output/thinlto_emit_linked_objects.ll.tmp3.o.thinlto.bc Expected<T> must be checked before access or destruction. Unchecked Expected<T> contained error: Unexpected end of file reading 0 of 0 bytesStack dump: Change-Id: I07e03262074ea5e0aae7a8d787d5487c87f914a2 llvm-svn: 366387
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp b/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
index 87940509741..9c30d563a31 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
@@ -539,8 +539,11 @@ BitcodeAnalyzer::BitcodeAnalyzer(StringRef Buffer,
Error BitcodeAnalyzer::analyze(Optional<BCDumpOptions> O,
Optional<StringRef> CheckHash) {
- if (Expected<CurStreamTypeType> H = analyzeHeader(O, Stream))
- CurStreamType = *H;
+ Expected<CurStreamTypeType> MaybeType = analyzeHeader(O, Stream);
+ if (!MaybeType)
+ return MaybeType.takeError();
+ else
+ CurStreamType = *MaybeType;
Stream.setBlockInfo(&BlockInfo);
OpenPOWER on IntegriCloud