@@ -362,26 +362,42 @@ if test "x$enable_werror" = "xyes"; then
362362 AC_MSG_ERROR ( "enable-werror set but - Werror is not usable" )
363363 fi
364364 AX_CHECK_COMPILE_FLAG ( [ -Werror=vla] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=vla"] ,,[ [ $CXXFLAG_WERROR] ] )
365+ AX_CHECK_COMPILE_FLAG ( [ -Werror=switch] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=switch"] ,,[ [ $CXXFLAG_WERROR] ] )
365366 AX_CHECK_COMPILE_FLAG ( [ -Werror=thread-safety] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=thread-safety"] ,,[ [ $CXXFLAG_WERROR] ] )
367+ AX_CHECK_COMPILE_FLAG ( [ -Werror=unused-variable] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=unused-variable"] ,,[ [ $CXXFLAG_WERROR] ] )
368+ AX_CHECK_COMPILE_FLAG ( [ -Werror=date-time] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=date-time"] ,,[ [ $CXXFLAG_WERROR] ] )
369+ AX_CHECK_COMPILE_FLAG ( [ -Werror=return-type] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=return-type"] ,,[ [ $CXXFLAG_WERROR] ] )
370+ AX_CHECK_COMPILE_FLAG ( [ -Werror=conditional-uninitialized] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=conditional-uninitialized"] ,,[ [ $CXXFLAG_WERROR] ] )
371+ dnl -Wsuggest-override is broken with GCC before 9.2
372+ dnl https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78010
373+ AX_CHECK_COMPILE_FLAG ( [ -Werror=suggest-override] ,[ ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=suggest-override"] ,,[ [ $CXXFLAG_WERROR] ] ,
374+ [ AC_LANG_SOURCE ( [ [ struct A { virtual void f(); }; struct B : A { void f() final; };] ] ) ] )
366375fi
367376
368377if test "x$CXXFLAGS_overridden" = "xno"; then
369- AX_CHECK_COMPILE_FLAG ( [ -Wall] ,[ CXXFLAGS="$CXXFLAGS -Wall"] ,,[ [ $CXXFLAG_WERROR] ] )
370- AX_CHECK_COMPILE_FLAG ( [ -Wextra] ,[ CXXFLAGS="$CXXFLAGS -Wextra"] ,,[ [ $CXXFLAG_WERROR] ] )
371- AX_CHECK_COMPILE_FLAG ( [ -Wformat] ,[ CXXFLAGS="$CXXFLAGS -Wformat"] ,,[ [ $CXXFLAG_WERROR] ] )
372- AX_CHECK_COMPILE_FLAG ( [ -Wvla] ,[ CXXFLAGS="$CXXFLAGS -Wvla"] ,,[ [ $CXXFLAG_WERROR] ] )
373- AX_CHECK_COMPILE_FLAG ( [ -Wformat-security] ,[ CXXFLAGS="$CXXFLAGS -Wformat-security"] ,,[ [ $CXXFLAG_WERROR] ] )
374- AX_CHECK_COMPILE_FLAG ( [ -Wthread-safety] ,[ CXXFLAGS="$CXXFLAGS -Wthread-safety"] ,,[ [ $CXXFLAG_WERROR] ] )
378+ AX_CHECK_COMPILE_FLAG ( [ -Wall] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wall"] ,,[ [ $CXXFLAG_WERROR] ] )
379+ AX_CHECK_COMPILE_FLAG ( [ -Wextra] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wextra"] ,,[ [ $CXXFLAG_WERROR] ] )
380+ AX_CHECK_COMPILE_FLAG ( [ -Wformat] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wformat"] ,,[ [ $CXXFLAG_WERROR] ] )
381+ AX_CHECK_COMPILE_FLAG ( [ -Wvla] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wvla"] ,,[ [ $CXXFLAG_WERROR] ] )
382+ AX_CHECK_COMPILE_FLAG ( [ -Wswitch] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wswitch"] ,,[ [ $CXXFLAG_WERROR] ] )
383+ AX_CHECK_COMPILE_FLAG ( [ -Wformat-security] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wformat-security"] ,,[ [ $CXXFLAG_WERROR] ] )
384+ AX_CHECK_COMPILE_FLAG ( [ -Wthread-safety] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wthread-safety"] ,,[ [ $CXXFLAG_WERROR] ] )
375385 AX_CHECK_COMPILE_FLAG ( [ -Wrange-loop-analysis] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wrange-loop-analysis"] ,,[ [ $CXXFLAG_WERROR] ] )
386+ AX_CHECK_COMPILE_FLAG ( [ -Wredundant-decls] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wredundant-decls"] ,,[ [ $CXXFLAG_WERROR] ] )
387+ AX_CHECK_COMPILE_FLAG ( [ -Wunused-variable] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wunused-variable"] ,,[ [ $CXXFLAG_WERROR] ] )
388+ AX_CHECK_COMPILE_FLAG ( [ -Wdate-time] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wdate-time"] ,,[ [ $CXXFLAG_WERROR] ] )
389+ AX_CHECK_COMPILE_FLAG ( [ -Wconditional-uninitialized] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wconditional-uninitialized"] ,,[ [ $CXXFLAG_WERROR] ] )
390+ AX_CHECK_COMPILE_FLAG ( [ -Wsuggest-override] ,[ WARN_CXXFLAGS="$WARN_CXXFLAGS -Wsuggest-override"] ,,[ [ $CXXFLAG_WERROR] ] ,
391+ [ AC_LANG_SOURCE ( [ [ struct A { virtual void f(); }; struct B : A { void f() final; };] ] ) ] )
376392
377393 # # Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
378394 # # unknown options if any other warning is produced. Test the -Wfoo case, and
379395 # # set the -Wno-foo case if it works.
380- AX_CHECK_COMPILE_FLAG ( [ -Wunused-parameter] ,[ CXXFLAGS ="$CXXFLAGS -Wno-unused-parameter"] ,,[ [ $CXXFLAG_WERROR] ] )
381- AX_CHECK_COMPILE_FLAG ( [ -Wself-assign] ,[ CXXFLAGS ="$CXXFLAGS -Wno-self-assign"] ,,[ [ $CXXFLAG_WERROR] ] )
382- AX_CHECK_COMPILE_FLAG ( [ -Wunused-local-typedef] ,[ CXXFLAGS ="$CXXFLAGS -Wno-unused-local-typedef"] ,,[ [ $CXXFLAG_WERROR] ] )
383- AX_CHECK_COMPILE_FLAG ( [ -Wdeprecated-register] ,[ CXXFLAGS ="$CXXFLAGS -Wno-deprecated-register"] ,,[ [ $CXXFLAG_WERROR] ] )
384- AX_CHECK_COMPILE_FLAG ( [ -Wimplicit-fallthrough] ,[ CXXFLAGS ="$CXXFLAGS -Wno-implicit-fallthrough"] ,,[ [ $CXXFLAG_WERROR] ] )
396+ AX_CHECK_COMPILE_FLAG ( [ -Wunused-parameter] ,[ NOWARN_CXXFLAGS ="$NOWARN_CXXFLAGS -Wno-unused-parameter"] ,,[ [ $CXXFLAG_WERROR] ] )
397+ AX_CHECK_COMPILE_FLAG ( [ -Wself-assign] ,[ NOWARN_CXXFLAGS ="$NOWARN_CXXFLAGS -Wno-self-assign"] ,,[ [ $CXXFLAG_WERROR] ] )
398+ AX_CHECK_COMPILE_FLAG ( [ -Wunused-local-typedef] ,[ NOWARN_CXXFLAGS ="$NOWARN_CXXFLAGS -Wno-unused-local-typedef"] ,,[ [ $CXXFLAG_WERROR] ] )
399+ AX_CHECK_COMPILE_FLAG ( [ -Wdeprecated-register] ,[ NOWARN_CXXFLAGS ="$NOWARN_CXXFLAGS -Wno-deprecated-register"] ,,[ [ $CXXFLAG_WERROR] ] )
400+ AX_CHECK_COMPILE_FLAG ( [ -Wimplicit-fallthrough] ,[ NOWARN_CXXFLAGS ="$NOWARN_CXXFLAGS -Wno-implicit-fallthrough"] ,,[ [ $CXXFLAG_WERROR] ] )
385401fi
386402
387403enable_hwcrc32=no
@@ -1459,6 +1475,8 @@ AC_SUBST(BITCOIN_TX_NAME)
14591475
14601476AC_SUBST ( RELDFLAGS )
14611477AC_SUBST ( DEBUG_CPPFLAGS )
1478+ AC_SUBST ( WARN_CXXFLAGS )
1479+ AC_SUBST ( NOWARN_CXXFLAGS )
14621480AC_SUBST ( DEBUG_CXXFLAGS )
14631481AC_SUBST ( ERROR_CXXFLAGS )
14641482AC_SUBST ( GPROF_CXXFLAGS )
@@ -1576,7 +1594,7 @@ echo " CC = $CC"
15761594echo " CFLAGS = $CFLAGS"
15771595echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CPPFLAGS"
15781596echo " CXX = $CXX"
1579- echo " CXXFLAGS = $DEBUG_CXXFLAGS $HARDENED_CXXFLAGS $ERROR_CXXFLAGS $GPROF_CXXFLAGS $CXXFLAGS"
1597+ echo " CXXFLAGS = $DEBUG_CXXFLAGS $HARDENED_CXXFLAGS $WARN_CXXFLAGS $NOWARN_CXXFLAGS $ ERROR_CXXFLAGS $GPROF_CXXFLAGS $CXXFLAGS"
15801598echo " LDFLAGS = $PTHREAD_CFLAGS $HARDENED_LDFLAGS $GPROF_LDFLAGS $LDFLAGS"
15811599echo " ARFLAGS = $ARFLAGS"
15821600echo
0 commit comments