-2012-11-19 Paul Eggert <eggert@cs.ucla.edu>
+2012-11-20 Paul Eggert <eggert@cs.ucla.edu>
Improve static checking of integer overflow and stack smashing.
- * configure.ac (WARN_CFLAGS): Add -Wstack-protector and
- -Wstrict-overflow if using GCC 4.7.2 or later on a platform with
+ * configure.ac (WARN_CFLAGS): Add -Wstack-protector
+ if using GCC 4.7.2 or later on a platform with
at least 64-bit long int. This improves static checking on these
platforms, when configured with --enable-gcc-warnings.
nw="$nw -Wfloat-equal" # warns about high-quality code
nw="$nw -Winline" # OK to ignore 'inline'
nw="$nw -Wjump-misses-init" # We sometimes safely jump over init.
+ nw="$nw -Wstrict-overflow" # OK to optimize assuming that
+ # signed overflow has undefined behavior
nw="$nw -Wsync-nand" # irrelevant here, and provokes ObjC warning
nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations
# The following line should be removable at some point.
nw="$nw -Wsuggest-attribute=pure"
- AC_MSG_CHECKING([whether to use -Wstack-protector -Wstrict-overflow])
+ AC_MSG_CHECKING([whether to use -Wstack-protector])
AC_PREPROC_IFELSE(
[AC_LANG_PROGRAM(
[[#if (1 <= __LONG_MAX__ >> 31 >> 31 \
]])],
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
- nw="$nw -Wstack-protector"
- nw="$nw -Wstrict-overflow"])
+ nw="$nw -Wstack-protector"])
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])