diff --git a/lib/Support/ErrorHandling.cpp b/lib/Support/ErrorHandling.cpp index 08830dc80b0..0b7af3e5905 100644 --- a/lib/Support/ErrorHandling.cpp +++ b/lib/Support/ErrorHandling.cpp @@ -66,11 +66,10 @@ 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(); + (void)::write(2, MessageStr.data(), MessageStr.size()); } // If we reached here, we are failing ungracefully. Run the interrupt handlers