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 at least 64-bit long int. This improves static checking on these platforms, when configured with --enable-gcc-warnings.
This commit is contained in:
parent
141462223d
commit
8ea5c4de2a
2 changed files with 24 additions and 3 deletions
|
@ -1,3 +1,11 @@
|
|||
2012-11-19 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
|
||||
at least 64-bit long int. This improves static checking on these
|
||||
platforms, when configured with --enable-gcc-warnings.
|
||||
|
||||
2012-11-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
|
||||
|
|
19
configure.ac
19
configure.ac
|
@ -717,11 +717,24 @@ else
|
|||
# <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
|
||||
nw="$nw -Wshadow"
|
||||
|
||||
# The following lines should be removable at some point.
|
||||
nw="$nw -Wstack-protector"
|
||||
nw="$nw -Wstrict-overflow"
|
||||
# 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_PREPROC_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#if (1 <= __LONG_MAX__ >> 31 >> 31 \
|
||||
&& 4 < __GNUC__ + (7 < __GNUC_MINOR__ + (2 <= __GNUC_PATCHLEVEL__)))
|
||||
/* OK */
|
||||
#else
|
||||
#error "Not GCC, or GCC before 4.7.2, or 'long int' has < 64 bits."
|
||||
#endif
|
||||
]])],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_RESULT(no)
|
||||
nw="$nw -Wstack-protector"
|
||||
nw="$nw -Wstrict-overflow"])
|
||||
|
||||
gl_MANYWARN_ALL_GCC([ws])
|
||||
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
|
||||
for w in $ws; do
|
||||
|
|
Loading…
Add table
Reference in a new issue