From: Paul Floyd Date: Thu, 11 Sep 2025 05:39:29 +0000 (+0200) Subject: configure: add check for C++17 std::align_val_t X-Git-Tag: VALGRIND_3_26_0~139 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=909e93e343c7fbe37036cc164c62e365a2e0bc5b;p=thirdparty%2Fvalgrind.git configure: add check for C++17 std::align_val_t Again for older compilers that claim C++17 but lack some features --- diff --git a/configure.ac b/configure.ac index 21e905fe8..9c6a4710d 100755 --- a/configure.ac +++ b/configure.ac @@ -1993,6 +1993,8 @@ AC_LANG(C) AM_CONDITIONAL(HAVE_CXX17, test x$ac_have_cxx_17 = xyes) +# Compiler may announce C++17 support as above but may lack +# some features AC_MSG_CHECKING([that C++ compiler supports constexpr if]) AC_LANG(C++) safe_CXXFLAGS=$CXXFLAGS @@ -2017,6 +2019,27 @@ AC_LANG(C) AM_CONDITIONAL(HAVE_CONSTEXPR_IF, test x$ac_have_constexpr_if = xyes) +AC_MSG_CHECKING([that C++ compiler supports std::align_val_t]) +AC_LANG(C++) +safe_CXXFLAGS=$CXXFLAGS +CXXFLAGS=-std=c++17 + +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +#include +std::align_val_t a; +])], +[ +ac_have_align_val_t=yes +AC_MSG_RESULT([yes]) +], [ +ac_have_align_val_t=no +AC_MSG_RESULT([no]) + ]) +CXXFLAGS=$safe_CXXFLAGS +AC_LANG(C) + +AM_CONDITIONAL(HAVE_ALIGN_VAL_T, test x$ac_have_align_val_t = xyes) + AC_MSG_CHECKING([that C++ compiler can include header file]) AC_LANG(C++) diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index 1a41734bd..3f193972d 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -635,9 +635,14 @@ check_PROGRAMS += reach_thread_register endif if HAVE_FSIZED_DEALLOCATION -check_PROGRAMS += sized_delete new_delete_mismatch_size +check_PROGRAMS += sized_delete endif +if HAVE_ALIGN_VAL_T +check_PROGRAMS += new_delete_mismatch_size +endif + + if HAVE_GNU_STPNCPY check_PROGRAMS += stpncpy endif