Commit 3eab4819 authored by Denis Bakhvalov's avatar Denis Bakhvalov
Browse files

[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
parent 7bb5fc05
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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);