From: Matthias Maier Date: Fri, 19 Jan 2024 17:28:06 +0000 (-0600) Subject: config.h: disable DEAL_II_CXX23_ASSUME for now X-Git-Tag: relicensing~132^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16502%2Fhead;p=dealii.git config.h: disable DEAL_II_CXX23_ASSUME for now --- 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 \ { \