From 5ca2ef03951f5da3940d4e3590267ffd7a9b523e Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Fri, 19 Jan 2024 11:28:06 -0600 Subject: [PATCH] config.h: disable DEAL_II_CXX23_ASSUME for now --- include/deal.II/base/config.h.in | 39 ++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/include/deal.II/base/config.h.in b/include/deal.II/base/config.h.in index c9943b3efe..29be3d6fa9 100644 --- a/include/deal.II/base/config.h.in +++ b/include/deal.II/base/config.h.in @@ -183,22 +183,31 @@ * attribute for older standards we rely on compiler intrinsics when * available. */ -#if defined(__clang__) -# define DEAL_II_CXX23_ASSUME(expr) __builtin_assume(static_cast(expr)) -#elif defined(__GNUC__) && !defined(__ICC) && __GNUC__ >= 13 -# define DEAL_II_CXX23_ASSUME(expr) \ - do \ - { \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \ - [[assume(expr)]]; \ - _Pragma("GCC diagnostic pop") \ - } \ - while (false) -#elif defined(_MSC_VER) || defined(__ICC) -# define DEAL_II_CXX23_ASSUME(expr) __assume(expr); -#else +#ifdef DEAL_II_EXPERIMENTAL_ASSUME +# error "Test" +# if defined(__clang__) +# define DEAL_II_CXX23_ASSUME(expr) __builtin_assume(static_cast(expr)) +# elif defined(__GNUC__) && !defined(__ICC) && __GNUC__ >= 13 +# define DEAL_II_CXX23_ASSUME(expr) \ + do \ + { \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \ + [[assume(expr)]]; \ + _Pragma("GCC diagnostic pop") \ + } \ + while (false) +# elif defined(_MSC_VER) || defined(__ICC) +# define DEAL_II_CXX23_ASSUME(expr) __assume(expr); +# else /* no way with GCC to express this without evaluating 'expr' */ +# define DEAL_II_CXX23_ASSUME(expr) \ + do \ + { \ + } \ + while (false) +# endif +#else # define DEAL_II_CXX23_ASSUME(expr) \ do \ { \ -- 2.39.5