X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSupport%2FErrorHandling.cpp;h=3579546d757d4c9b0107962aecfaccf0053756c1;hb=a75ce9f5d2236d93c117e861e60e6f3f748c9555;hp=c4d5ea4c3db7daefe8fa570e1466d09e6abd975f;hpb=73ebaff79f2a26d76cccd37d176f05f32b09ad2e;p=oota-llvm.git diff --git a/lib/Support/ErrorHandling.cpp b/lib/Support/ErrorHandling.cpp index c4d5ea4c3db..3579546d757 100644 --- a/lib/Support/ErrorHandling.cpp +++ b/lib/Support/ErrorHandling.cpp @@ -16,9 +16,10 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/raw_ostream.h" -#include "llvm/System/Signals.h" -#include "llvm/System/Threading.h" +#include "llvm/Support/Signals.h" +#include "llvm/Support/Threading.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/Config/config.h" #include #include @@ -57,6 +58,10 @@ void llvm::report_fatal_error(const std::string &Reason) { report_fatal_error(Twine(Reason)); } +void llvm::report_fatal_error(StringRef Reason) { + report_fatal_error(Twine(Reason)); +} + void llvm::report_fatal_error(const Twine &Reason) { if (ErrorHandler) { ErrorHandler(ErrorHandlerUserData, Reason.str()); @@ -65,11 +70,11 @@ void llvm::report_fatal_error(const Twine &Reason) { // succeeds (e.g. handling EINTR) and we can't use errs() here because // raw ostreams can call report_fatal_error. SmallVector Buffer; - StringRef ReasonStr = Reason.toStringRef(Buffer); - - ::write(2, "LLVM ERROR: ", 12); - ::write(2, ReasonStr.data(), ReasonStr.size()); - ::write(2, "\n", 1); + raw_svector_ostream OS(Buffer); + OS << "LLVM ERROR: " << Reason << "\n"; + StringRef MessageStr = OS.str(); + ssize_t written = ::write(2, MessageStr.data(), MessageStr.size()); + (void)written; // If something went wrong, we deliberately just give up. } // If we reached here, we are failing ungracefully. Run the interrupt handlers