Do error checking.
authorDevang Patel <dpatel@apple.com>
Mon, 9 Oct 2006 20:20:13 +0000 (20:20 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 9 Oct 2006 20:20:13 +0000 (20:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30842 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lto/lto.cpp

index aeced8df0d382e19dfeb702ed5a1fdd3c6891eb8..a64130dc7ad730fd6137f4adf7eaab550b281ea9 100644 (file)
@@ -344,6 +344,10 @@ LTO::optimizeModules(const std::string &OutputFilename,
 
   std::string ErrMsg;
   sys::Path TempDir = sys::Path::GetTemporaryDirectory(&ErrMsg);
+  if (TempDir.isEmpty()) {
+    std::cerr << "lto: " << ErrMsg << "\n";
+    return LTO_WRITE_FAILURE;
+  }
   sys::Path tmpAsmFilePath(TempDir);
   if (!tmpAsmFilePath.appendComponent("lto")) {
     std::cerr << "lto: " << ErrMsg << "\n";
@@ -399,7 +403,10 @@ LTO::optimizeModules(const std::string &OutputFilename,
   args.push_back(tmpAsmFilePath.c_str());
   args.push_back(0);
 
-  sys::Program::ExecuteAndWait(gcc, &args[0], 0, 0, 1);
+  if (sys::Program::ExecuteAndWait(gcc, &args[0], 0, 0, 1, &ErrMsg)) {
+    std::cerr << "lto: " << ErrMsg << "\n";
+    return LTO_ASM_FAILURE;
+  }
 
   tmpAsmFilePath.eraseFromDisk();
   TempDir.eraseFromDisk(true);