X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FLinker%2FLinker.cpp;h=fba91da5ddd189bf5a75ef27fe6b92e1d5ac701f;hb=97dc60b7598b8c99dece639db9e639afac44362a;hp=6e27fdad03abbe8e913eaaa8c35ace858e67835a;hpb=1f6efa3996dd1929fbc129203ce5009b620e6969;p=oota-llvm.git diff --git a/lib/Linker/Linker.cpp b/lib/Linker/Linker.cpp index 6e27fdad03a..fba91da5ddd 100644 --- a/lib/Linker/Linker.cpp +++ b/lib/Linker/Linker.cpp @@ -18,6 +18,7 @@ #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Config/config.h" +#include "llvm/Support/system_error.h" using namespace llvm; Linker::Linker(StringRef progname, StringRef modname, @@ -98,11 +99,12 @@ Linker::LoadObject(const sys::Path &FN) { std::string ParseErrorMessage; Module *Result = 0; - std::auto_ptr Buffer(MemoryBuffer::getFileOrSTDIN(FN.c_str())); - if (Buffer.get()) - Result = ParseBitcodeFile(Buffer.get(), Context, &ParseErrorMessage); + OwningPtr Buffer; + if (error_code ec = MemoryBuffer::getFileOrSTDIN(FN.c_str(), Buffer)) + ParseErrorMessage = "Error reading file '" + FN.str() + "'" + ": " + + ec.message(); else - ParseErrorMessage = "Error reading file '" + FN.str() + "'"; + Result = ParseBitcodeFile(Buffer.get(), Context, &ParseErrorMessage); if (Result) return std::auto_ptr(Result);