]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
configure and make: add configure checks for C++ exception warnings
authorPaul Floyd <pjfloyd@wanadoo.fr>
Mon, 13 Oct 2025 06:38:09 +0000 (08:38 +0200)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Mon, 13 Oct 2025 06:38:09 +0000 (08:38 +0200)
Add checks for -Wno-implicit-exception-spec-mismatch
   (FLAG_W_NO_IMPLICIT_EXCEPTION_SPEC_MISMATCH)
and -Wno-missing-exception-spec
   (FLAG_W_NO_MISSING_EXCEPTION_SPEC)

Also we should clean up C++ flag checking a bit. If all checks get
grouped together than just one AC_LANG(C++)/AC_LANG(C) would be
needed.

configure.ac
massif/tests/Makefile.am

index 1a7ea34d1b012c8f6acc1d97b3fbd022c46ed0e2..9217aa0ac85dbf4e35370ac67479b338bad34d17 100644 (file)
@@ -2638,6 +2638,24 @@ AC_GCC_WARNING_SUBST([logical-op], [FLAG_W_LOGICAL_OP])
 AC_GCC_WARNING_SUBST([enum-conversion], [FLAG_W_ENUM_CONVERSION])
 AC_GCC_WARNING_SUBST([implicit-fallthrough=2], [FLAG_W_IMPLICIT_FALLTHROUGH])
 
+# as above, C++ flags
+AC_DEFUN([AC_GXX_WARNING_SUBST_NO],[
+  AC_MSG_CHECKING([if g++ accepts -W$1])
+  safe_CXXFLAGS=$CXXFLAGS
+  CXXFLAGS="-W$1 -Werror"
+  AC_LANG_PUSH(C++)
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[;]])], [
+                    AC_SUBST([$2], [-Wno-$1])
+  AC_LANG_POP()
+  AC_MSG_RESULT([yes])], [
+                AC_SUBST([$2], [])
+                AC_MSG_RESULT([no])])
+  CXXFLAGS=$safe_CXXFLAGS
+])
+
+AC_GXX_WARNING_SUBST_NO([missing-exception-spec], [FLAG_W_NO_MISSING_EXCEPTION_SPEC])
+AC_GXX_WARNING_SUBST_NO([implicit-exception-spec-mismatch], [FLAG_W_NO_IMPLICIT_EXCEPTION_SPEC_MISMATCH])
+
 # Does this compiler support -Wformat-security ?
 # Special handling is needed, because certain GCC versions require -Wformat
 # being present if -Wformat-security is given. Otherwise a warning is issued.
index d4d798f69c3f6daec12f4785635744d4edf3a2a1..b59659272722bd9e6544042307c45c4b4394c119 100644 (file)
@@ -98,7 +98,7 @@ bug469146_CXXFLAGS    = $(AM_CXXFLAGS) -O2 -fno-optimize-sibling-calls @FLAG_W_NO_U
 new_cpp_SOURCES                = new-cpp.cpp
 overloaded_new_SOURCES = overloaded-new.cpp
 # aligned new needs C++17
-overloaded_new_CXXFLAGS        = $(AM_CXXFLAGS) -Wno-implicit-exception-spec-mismatch -Wno-missing-exception-spec -std=c++17
+overloaded_new_CXXFLAGS        = $(AM_CXXFLAGS) @FLAG_W_NO_IMPLICIT_EXCEPTION_SPEC_MISMATCH@ @FLAG_W_NO_MISSING_EXCEPTION_SPEC@ -std=c++17
 
 # Suppress warnings for issues we are testing for
 alloc_fns_CFLAGS       = $(AM_CFLAGS) -Wno-unused-result