summaryrefslogtreecommitdiff
path: root/tools/gccld/gccld.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gccld/gccld.cpp')
-rw-r--r--tools/gccld/gccld.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index c8ecde5491..9401a8acbf 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -133,17 +133,22 @@ static int PrintAndReturn(const char *progname, const std::string &Message) {
/// EmitShellScript - Output the wrapper file that invokes the JIT on the LLVM
/// bytecode file for the program.
static void EmitShellScript(char **argv) {
-#if defined(_WIN32) || defined(__CYGWIN__)
+#if defined(_WIN32) || defined(__CYGWIN__)
// Windows doesn't support #!/bin/sh style shell scripts in .exe files. To
// support windows systems, we copy the llvm-stub.exe executable from the
// build tree to the destination file.
- std::string llvmstub = FindExecutable("llvm-stub.exe", argv[0]).toString();
- if (llvmstub.empty()) {
+ std::string ErrMsg;
+ sys::Path llvmstub = FindExecutable("llvm-stub.exe", argv[0]);
+ if (llvmstub.isEmpty()) {
std::cerr << "Could not find llvm-stub.exe executable!\n";
exit(1);
}
- sys::CopyFile(sys::Path(OutputFilename), sys::Path(llvmstub));
- return;
+ if (0 != sys::CopyFile(sys::Path(OutputFilename), llvmstub, &ErrMsg)) {
+ std::cerr << argv[0] << ": " << ErrMsg << "\n";
+ exit(1);
+ }
+
+ return;
#endif
// Output the script to start the program...