diff --git a/utils/not/not.cpp b/utils/not/not.cpp index 546f989d7fa..af942500186 100644 --- a/utils/not/not.cpp +++ b/utils/not/not.cpp @@ -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)