summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/System/Program.h3
-rw-r--r--lib/Support/CommandLine.cpp2
-rw-r--r--lib/Support/GraphWriter.cpp4
-rw-r--r--lib/System/Unix/Program.inc2
-rw-r--r--tools/bugpoint/OptimizerDriver.cpp2
-rw-r--r--tools/bugpoint/ToolRunner.cpp2
-rw-r--r--tools/lto/lto.cpp2
-rw-r--r--tools/opt/opt.cpp3
8 files changed, 12 insertions, 8 deletions
diff --git a/include/llvm/System/Program.h b/include/llvm/System/Program.h
index 92534de405..2b5b488ffb 100644
--- a/include/llvm/System/Program.h
+++ b/include/llvm/System/Program.h
@@ -49,7 +49,8 @@ namespace sys {
/// called then a std::string is thrown.
/// @returns an integer result code indicating the status of the program.
/// A zero or positive value indicates the result code of the program. A
- /// negative value is the signal number on which it terminated.
+ /// negative value is the signal number on which it terminated. A value of
+ /// -9999 indicates the program could not be executed.
/// @throws std::string on a variety of error conditions or if the invoked
/// program aborted abnormally.
/// @see FindProgrambyName
diff --git a/lib/Support/CommandLine.cpp b/lib/Support/CommandLine.cpp
index f7fbef6b72..069940162b 100644
--- a/lib/Support/CommandLine.cpp
+++ b/lib/Support/CommandLine.cpp
@@ -31,7 +31,7 @@ using namespace llvm;
using namespace cl;
// Globals for name and overview of program
-static const char *ProgramName = "<unknown>";
+static const char *ProgramName = "<premain>";
static const char *ProgramOverview = 0;
// This collects additional help to be printed.
diff --git a/lib/Support/GraphWriter.cpp b/lib/Support/GraphWriter.cpp
index f3255d815c..152261fbac 100644
--- a/lib/Support/GraphWriter.cpp
+++ b/lib/Support/GraphWriter.cpp
@@ -59,7 +59,9 @@ void llvm::DisplayGraph(const sys::Path &Filename) {
args.push_back(PSFilename.c_str());
args.push_back(0);
- sys::Program::ExecuteAndWait(gv, &args[0]);
+ if (sys::Program::ExecuteAndWait(gv, &args[0])) {
+ std::cerr << "Error viewing graph: 'gv' not in path?\n";
+ }
}
PSFilename.eraseFromDisk();
#elif HAVE_DOTTY
diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc
index 1bf1bc91f8..c3d5d5ce6e 100644
--- a/lib/System/Unix/Program.inc
+++ b/lib/System/Unix/Program.inc
@@ -108,7 +108,7 @@ Program::ExecuteAndWait(const Path& path,
unsigned secondsToWait
) {
if (!path.canExecute())
- throw path.toString() + " is not executable";
+ return -9999;
#ifdef HAVE_SYS_WAIT_H
// Create a child process.
diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp
index df4f470da2..0ac514bbef 100644
--- a/tools/bugpoint/OptimizerDriver.cpp
+++ b/tools/bugpoint/OptimizerDriver.cpp
@@ -194,6 +194,8 @@ bool BugDriver::runPasses(const std::vector<const PassInfo*> &Passes,
std::cout << "Success!\n";
else if (result > 0)
std::cout << "Exited with error code '" << result << "'\n";
+ else if (result == -9999)
+ std::cout << "Program not executable\n";
else if (result < 0)
std::cout << "Crashed with signal #" << abs(result) << "\n";
if (result & 0x01000000)
diff --git a/tools/bugpoint/ToolRunner.cpp b/tools/bugpoint/ToolRunner.cpp
index 94cccf2774..067bf658c7 100644
--- a/tools/bugpoint/ToolRunner.cpp
+++ b/tools/bugpoint/ToolRunner.cpp
@@ -55,7 +55,7 @@ static void ProcessFailure(sys::Path ProgPath, const char** Args) {
sys::Path ErrorFilename("error_messages");
ErrorFilename.makeUnique();
RunProgramWithTimeout(ProgPath, Args, sys::Path(""), ErrorFilename,
- ErrorFilename);
+ ErrorFilename); // FIXME: check return code
// Print out the error messages generated by GCC if possible...
std::ifstream ErrorFile(ErrorFilename.c_str());
diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp
index 162bac9e61..570558a62b 100644
--- a/tools/lto/lto.cpp
+++ b/tools/lto/lto.cpp
@@ -334,7 +334,7 @@ LinkTimeOptimizer::optimizeModules(const std::string &OutputFilename,
args.push_back(tmpAsmFilePath.c_str());
args.push_back(0);
- int R1 = sys::Program::ExecuteAndWait(gcc, &args[0], 0, 0, 1);
+ sys::Program::ExecuteAndWait(gcc, &args[0], 0, 0, 1);
tmpAsmFilePath.eraseFromDisk();
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 18b4a8c157..6d3b3b648a 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -26,8 +26,7 @@
#include "llvm/Support/PluginLoader.h"
#include "llvm/Support/SystemUtils.h"
#include "llvm/Support/Timer.h"
-#include "llvm/Analysis/LinkAllAnalyses.h"
-#include "llvm/Transforms/LinkAllPasses.h"
+#include "llvm/LinkAllPasses.h"
#include "llvm/LinkAllVMCore.h"
#include <fstream>
#include <memory>