summaryrefslogtreecommitdiffstats
path: root/Source/kwsys/testProcess.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-07-09 14:30:18 (GMT)
committerBrad King <brad.king@kitware.com>2010-07-09 14:40:06 (GMT)
commit70154efef86c7025435b15c52a8a1a5b47067835 (patch)
tree7c507a8ba1efa02993a192bb0afc8ae7cd96470a /Source/kwsys/testProcess.c
parenta1a4a2cb6dbcc0b2ec0f07aa2d4b36242e4fe3df (diff)
downloadCMake-70154efef86c7025435b15c52a8a1a5b47067835.zip
CMake-70154efef86c7025435b15c52a8a1a5b47067835.tar.gz
CMake-70154efef86c7025435b15c52a8a1a5b47067835.tar.bz2
KWSys: Avoid undefined behavior in Process crash tests
Clang is smart enough to recognize that "*(int*)0=0" invokes undefined behavior, warns, and produces an "undefined instruction". The message in commit "Avoid Clang optimizer bug in testProcess-[45]" (2010-07-02) is incorrect; this is not a Clang bug. It really is undefined behavior. Use "*(int*)1=0" to produce a crash instead.
Diffstat (limited to 'Source/kwsys/testProcess.c')
-rw-r--r--Source/kwsys/testProcess.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/Source/kwsys/testProcess.c b/Source/kwsys/testProcess.c
index 6044917..877002a 100644
--- a/Source/kwsys/testProcess.c
+++ b/Source/kwsys/testProcess.c
@@ -94,9 +94,8 @@ int test4(int argc, const char* argv[])
fprintf(stderr, "Output before crash on stderr from crash test.\n");
fflush(stdout);
fflush(stderr);
-#if defined(__APPLE__) && defined(__x86_64__) && defined(__OPTIMIZE__) \
- && defined(__clang__)
- *(int*)1 = 0; /* Clang's optimizer produces bad code for 0-ptr. */
+#if defined(__clang__)
+ *(int*)1 = 0; /* Clang warns about 0-ptr; undefined behavior. */
#else
*(int*)0 = 0;
#endif