From: David Wells Date: Thu, 29 Jun 2023 21:12:08 +0000 (-0400) Subject: Only enable -ffp-exception-behavior=strict for some platforms. X-Git-Tag: relicensing~847^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F15532%2Fhead;p=dealii.git Only enable -ffp-exception-behavior=strict for some platforms. This doesn't work with AppleClang 14.0, even though the enable_with_supported() flag works. --- diff --git a/cmake/setup_compiler_flags_gnu.cmake b/cmake/setup_compiler_flags_gnu.cmake index aeed104ec6..4ad63ecc2b 100644 --- a/cmake/setup_compiler_flags_gnu.cmake +++ b/cmake/setup_compiler_flags_gnu.cmake @@ -212,7 +212,19 @@ if (CMAKE_BUILD_TYPE MATCHES "Debug") # # https://github.com/dealii/dealii/issues/15496 # - enable_if_supported(DEAL_II_CXX_FLAGS_DEBUG "-ffp-exception-behavior=strict") + # ... except this doesn't presently work with AppleClang versions before 16.0. + # They support this flag but it is not compatible with C++14: see + # + # https://github.com/dealii/dealii/issues/15531 + # + # This flag works with standard Clang 13.0 or newer. + # + if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0") + OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "16.0")) + enable_if_supported(DEAL_II_CXX_FLAGS_DEBUG "-ffp-exception-behavior=strict") + endif() # # In recent versions, gcc often eliminates too much debug information