not is testing for a normal exit with a non-zero value. It shouldn't
authorDan Gohman <gohman@apple.com>
Fri, 29 Oct 2010 20:20:29 +0000 (20:20 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 29 Oct 2010 20:20:29 +0000 (20:20 +0000)
return success if the child process is killed with a signal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117701 91177308-0d34-0410-b5e6-96231b3b80d8

utils/not/not.cpp

index dd89b8f11c0e4a93d6fcddc3fae4939ea9fa5edc..908abe932d10591b38b05fd66f9f07c906b62e19 100644 (file)
@@ -9,9 +9,19 @@
 
 #include "llvm/System/Path.h"
 #include "llvm/System/Program.h"
+#include "llvm/Support/raw_ostream.h"
 using namespace llvm;
 
 int main(int argc, const char **argv) {
   sys::Path Program = sys::Program::FindProgramByName(argv[1]);
-  return !sys::Program::ExecuteAndWait(Program, argv + 1);
+
+  std::string ErrMsg;
+  int Result = sys::Program::ExecuteAndWait(Program, argv + 1, 0, 0, 0, 0,
+                                            &ErrMsg);
+  if (Result < 0) {
+    errs() << "Error: " << ErrMsg << "\n";
+    return 1;
+  }
+
+  return Result == 0;
 }