diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-06-23 22:54:33 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-06-23 22:54:33 +0000 |
commit | 71c24112f164f525840442f7f22fe491095c53c1 (patch) | |
tree | eeb7dc23d35c9b33c5c7473b8c62fd9d66544452 /utils | |
parent | b138caba43b5c1a370bc9cf52d815c44bdf90159 (diff) |
not: Only consider exit code 3 to be a crash with --crash
This fixes Clang's test/Index/comment-xml-schema.c with Cygwin's
xmllint.exe, which uses exit(3) for XML validation failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211550 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/not/not.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/utils/not/not.cpp b/utils/not/not.cpp index af942500186..a5c7183bd2c 100644 --- a/utils/not/not.cpp +++ b/utils/not/not.cpp @@ -33,10 +33,11 @@ int main(int argc, const char **argv) { 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) + // 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) { |