summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/not/not.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/utils/not/not.cpp b/utils/not/not.cpp
index 546f989d7f..af94250018 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)