From a0de763e32b381369896fef63d221376f29a9113 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 8 Jul 2018 21:05:41 -0600 Subject: [PATCH] Add -Wunused-variable to warnings.m4 This adds -Wunused-variable to the build. This required a special check in configure in order to work around a bug in GCC 4.9. Simon ound the correct test to use, so I've added him to the ChangeLog. gdb/ChangeLog 2018-07-22 Simon Marchi Tom Tromey * warning.m4 (AM_GDB_WARNINGS): Add -Wunused-variable and special test for it. * configure: Rebuild. gdb/gdbserver/ChangeLog 2018-07-22 Tom Tromey * configure: Rebuild. --- gdb/ChangeLog | 7 +++++++ gdb/configure | 28 ++++++++++++++++++++++++++-- gdb/gdbserver/ChangeLog | 4 ++++ gdb/gdbserver/configure | 28 ++++++++++++++++++++++++++-- gdb/warning.m4 | 17 +++++++++++++++-- 5 files changed, 78 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 972184dc99..388b923e5d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2018-07-22 Simon Marchi + Tom Tromey + + * warning.m4 (AM_GDB_WARNINGS): Add -Wunused-variable and special + test for it. + * configure: Rebuild. + 2018-07-22 Tom Tromey * regformats/regdat.sh: Define xmltarget_${name} inside diff --git a/gdb/configure b/gdb/configure index 3f0a22073d..3ee88e4eb3 100755 --- a/gdb/configure +++ b/gdb/configure @@ -15439,7 +15439,7 @@ fi # The options we'll try to enable. build_warnings="-Wall -Wpointer-arith \ --Wno-unused -Wunused-value -Wunused-function \ +-Wno-unused -Wunused-value -Wunused-variable -Wunused-function \ -Wno-switch -Wno-char-subscripts \ -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \ -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \ @@ -15528,7 +15528,30 @@ $as_echo_n "checking compiler warning flags... " >&6; } CFLAGS="$CFLAGS -Werror $wtest" saved_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Werror $wtest" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "x$w" = "x-Wunused-variable"; then + # Check for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38958, + # fixed in GCC 4.9. This test is derived from the gdb + # source code that triggered this bug in GCC. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +struct scoped_restore_base {}; + struct scoped_restore_tmpl : public scoped_restore_base { + ~scoped_restore_tmpl() {} + }; +int +main () +{ +const scoped_restore_base &b = scoped_restore_tmpl(); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + WARN_CFLAGS="${WARN_CFLAGS} $w" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -15543,6 +15566,7 @@ if ac_fn_cxx_try_compile "$LINENO"; then : WARN_CFLAGS="${WARN_CFLAGS} $w" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi CFLAGS="$saved_CFLAGS" CXXFLAGS="$saved_CXXFLAGS" esac diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index eccf556b98..23369e4abc 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,7 @@ +2018-07-22 Tom Tromey + + * configure: Rebuild. + 2018-07-22 Tom Tromey * win32-low.c (win32_create_inferior): Remove unused variables. diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 6064a1eb10..043bc216e4 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -7237,7 +7237,7 @@ fi # The options we'll try to enable. build_warnings="-Wall -Wpointer-arith \ --Wno-unused -Wunused-value -Wunused-function \ +-Wno-unused -Wunused-value -Wunused-variable -Wunused-function \ -Wno-switch -Wno-char-subscripts \ -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \ -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \ @@ -7326,7 +7326,30 @@ $as_echo_n "checking compiler warning flags... " >&6; } CFLAGS="$CFLAGS -Werror $wtest" saved_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Werror $wtest" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "x$w" = "x-Wunused-variable"; then + # Check for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38958, + # fixed in GCC 4.9. This test is derived from the gdb + # source code that triggered this bug in GCC. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +struct scoped_restore_base {}; + struct scoped_restore_tmpl : public scoped_restore_base { + ~scoped_restore_tmpl() {} + }; +int +main () +{ +const scoped_restore_base &b = scoped_restore_tmpl(); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + WARN_CFLAGS="${WARN_CFLAGS} $w" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -7341,6 +7364,7 @@ if ac_fn_cxx_try_compile "$LINENO"; then : WARN_CFLAGS="${WARN_CFLAGS} $w" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi CFLAGS="$saved_CFLAGS" CXXFLAGS="$saved_CXXFLAGS" esac diff --git a/gdb/warning.m4 b/gdb/warning.m4 index 632cc214ac..00e7cd6050 100644 --- a/gdb/warning.m4 +++ b/gdb/warning.m4 @@ -37,7 +37,7 @@ fi # The options we'll try to enable. build_warnings="-Wall -Wpointer-arith \ --Wno-unused -Wunused-value -Wunused-function \ +-Wno-unused -Wunused-value -Wunused-variable -Wunused-function \ -Wno-switch -Wno-char-subscripts \ -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \ -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \ @@ -118,7 +118,20 @@ then CFLAGS="$CFLAGS -Werror $wtest" saved_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Werror $wtest" - AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) + if test "x$w" = "x-Wunused-variable"; then + # Check for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38958, + # fixed in GCC 4.9. This test is derived from the gdb + # source code that triggered this bug in GCC. + AC_TRY_COMPILE( + [struct scoped_restore_base {}; + struct scoped_restore_tmpl : public scoped_restore_base { + ~scoped_restore_tmpl() {} + };], + [const scoped_restore_base &b = scoped_restore_tmpl();], + WARN_CFLAGS="${WARN_CFLAGS} $w",) + else + AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) + fi CFLAGS="$saved_CFLAGS" CXXFLAGS="$saved_CXXFLAGS" esac -- 2.34.1