Suppress false-positive GCC and clang warnings in test builds

libeigen/eigen!2187

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
This commit is contained in:
Rasmus Munk Larsen
2026-02-22 14:54:15 -08:00
parent ad7f1fe70e
commit 9810969c0f
2 changed files with 17 additions and 0 deletions

View File

@@ -427,6 +427,17 @@ if (EIGEN_BUILD_TESTING)
ei_add_cxx_compiler_flag("-fno-check-new")
endif()
# GCC 12+ emits false-positive -Warray-bounds, -Wmaybe-uninitialized,
# -Wstringop-overread, and -Wnonnull warnings at -O2/-O3 in heavily
# templated code with mixed static/dynamic sizes. These are well-known
# compiler bugs (see GCC PR 109394, 106247, 105329, 98610, among others).
if (CMAKE_COMPILER_IS_GNUCXX)
ei_add_cxx_compiler_flag("-Wno-array-bounds")
ei_add_cxx_compiler_flag("-Wno-maybe-uninitialized")
ei_add_cxx_compiler_flag("-Wno-stringop-overread")
ei_add_cxx_compiler_flag("-Wno-nonnull")
endif()
if(ANDROID_NDK)
ei_add_cxx_compiler_flag("-pie")

View File

@@ -336,6 +336,12 @@ else()
set(EIGEN_FASTMATH_FLAGS "/fp:fast")
endif()
endif()
# The fastmath test intentionally uses NaN/infinity under -ffast-math.
# Suppress the clang warning about this being technically undefined.
check_cxx_compiler_flag("-Wno-nan-infinity-disabled" COMPILER_SUPPORT_WNO_NAN_INF)
if(COMPILER_SUPPORT_WNO_NAN_INF)
set(EIGEN_FASTMATH_FLAGS "${EIGEN_FASTMATH_FLAGS} -Wno-nan-infinity-disabled")
endif()
ei_add_test(fastmath "${EIGEN_FASTMATH_FLAGS}")