From 1cac0f684097b53742889dc795dbfc0a305ae1b6 Mon Sep 17 00:00:00 2001 From: David Wells Date: Thu, 29 Jun 2023 17:12:08 -0400 Subject: [PATCH] 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. --- cmake/setup_compiler_flags_gnu.cmake | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 -- 2.39.5