[Win32] Let utils/not aware of abort(), aka llvm_unreachable(), in msvcrt.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 13 Jun 2014 12:23:56 +0000 (12:23 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 13 Jun 2014 12:23:56 +0000 (12:23 +0000)
It has exit code as 3. abort(), aka unreachable, may be handled as crash.

FIXME: Could we move this into Win32/Program.inc?

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

utils/not/not.cpp

index 546f989d7fa20d69ab6032b653b1f40ca12cf765..af942500186474bb390347ef053c1ed6d5b49e23 100644 (file)
@@ -32,6 +32,13 @@ int main(int argc, const char **argv) {
   std::string ErrMsg;
   int Result = sys::ExecuteAndWait(Program, argv, nullptr, nullptr, 0, 0,
                                    &ErrMsg);
+#ifdef _WIN32
+  // Handle abort() in msvcrt -- It has exit code as 3.
+  // abort(), aka unreachable, may be handled as crash.
+  // FIXME: Could we move this into Win32/Program.inc?
+  if (Result == 3)
+    Result = -3;
+#endif
   if (Result < 0) {
     errs() << "Error: " << ErrMsg << "\n";
     if (ExpectCrash)