diff options
Diffstat (limited to 'llvm/tools/llvm-dis/llvm-dis.cpp')
-rw-r--r-- | llvm/tools/llvm-dis/llvm-dis.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/tools/llvm-dis/llvm-dis.cpp b/llvm/tools/llvm-dis/llvm-dis.cpp index fb737173761..072f6369e12 100644 --- a/llvm/tools/llvm-dis/llvm-dis.cpp +++ b/llvm/tools/llvm-dis/llvm-dis.cpp @@ -127,15 +127,19 @@ int main(int argc, char **argv) { std::unique_ptr<Module> M; // Use the bitcode streaming interface - DataStreamer *streamer = getDataFileStreamer(InputFilename, &ErrorMessage); - if (streamer) { + DataStreamer *Streamer = getDataFileStreamer(InputFilename, &ErrorMessage); + if (Streamer) { std::string DisplayFilename; if (InputFilename == "-") DisplayFilename = "<stdin>"; else DisplayFilename = InputFilename; - M.reset(getStreamedBitcodeModule(DisplayFilename, streamer, Context, - &ErrorMessage)); + ErrorOr<std::unique_ptr<Module>> MOrErr = + getStreamedBitcodeModule(DisplayFilename, Streamer, Context); + if (std::error_code EC = MOrErr.getError()) + ErrorMessage = EC.message(); + else + M = std::move(*MOrErr); if(M.get()) { if (std::error_code EC = M->materializeAllPermanently()) { ErrorMessage = EC.message(); |