Merge alignment of common GlobalValue.
[oota-llvm.git] / utils / not / not.cpp
index 546f989d7fa20d69ab6032b653b1f40ca12cf765..a5c7183bd2c9b019c07eadd4f5e5abfe80c31d85 100644 (file)
@@ -32,6 +32,14 @@ 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, should be recognized as a crash.  However, some binaries use
+  // exit code 3 on non-crash failure paths, so only do this if we expect a
+  // crash.
+  if (ExpectCrash && Result == 3)
+    Result = -3;
+#endif
   if (Result < 0) {
     errs() << "Error: " << ErrMsg << "\n";
     if (ExpectCrash)