diff options
author | Tom Tromey <tom@tromey.com> | 2018-09-05 13:46:47 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-09-05 21:47:33 -0600 |
commit | f1628857d783fee0171f16f1bad0b7816460dec5 (patch) | |
tree | 1d26179d33bed1c082d11d0d6c3d33160792d7d9 /gdb/warning.m4 | |
parent | af39b1c216ffb11e6ca8e8607b00749e0fc1ab41 (diff) | |
download | gdb-f1628857d783fee0171f16f1bad0b7816460dec5.zip gdb-f1628857d783fee0171f16f1bad0b7816460dec5.tar.gz gdb-f1628857d783fee0171f16f1bad0b7816460dec5.tar.bz2 |
Make -Wformat-nonliteral work with gcc
After looking into why the build failed for Simon but not for me, we
found that the underlying cause was due to how gcc treats
-Wformat-nonliteral. gcc requires -Wformat to be given first; but
warning.m4 was not doing this, so -Wformat-nonliteral was not being
used.
This patch changes warning.m4 to account gcc's requirement.
This then showed that the target-float.c build change in the earlier
Makefile patch was also incorrect. Simon didn't see this in his
build, but gcc now points it out. So, this patch fixes this problem
as well.
2018-09-05 Tom Tromey <tom@tromey.com>
* warning.m4 (AM_GDB_WARNINGS): Add -Wformat when testing
-Wformat-nonliteral.
* target-float.c (host_float_ops<T>::to_string)
(host_float_ops<T>::from_string): Use
DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL.
* configure: Rebuild.
gdb/gdbserver/ChangeLog
2018-09-05 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
Diffstat (limited to 'gdb/warning.m4')
-rw-r--r-- | gdb/warning.m4 | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gdb/warning.m4 b/gdb/warning.m4 index dd33849..82170ac 100644 --- a/gdb/warning.m4 +++ b/gdb/warning.m4 @@ -58,7 +58,10 @@ case "${host}" in build_warnings="$build_warnings -Wno-unknown-pragmas" # Solaris 11 <unistd.h> marks vfork deprecated. build_warnings="$build_warnings -Wno-deprecated-declarations" ;; - *) build_warnings="$build_warnings -Wformat-nonliteral" ;; + *) + # Note that gcc requires -Wformat for -Wformat-nonliteral to work, + # but there's a special case for this below. + build_warnings="$build_warnings -Wformat-nonliteral" ;; esac AC_ARG_ENABLE(build-warnings, @@ -106,6 +109,12 @@ then case $w in -Wno-*) wtest=`echo $w | sed 's/-Wno-/-W/g'` ;; + -Wformat-nonliteral) + # gcc requires -Wformat before -Wformat-nonliteral + # will work, so stick them together. + w="-Wformat $w" + wtest="$w" + ;; *) wtest=$w ;; esac |