From f8e4c55cbc09fbbe136b2ba2da405d7bdced07ae Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 17 Nov 2020 00:27:06 +0000 Subject: float.h: C2x decimal signaling NaN macros C2x adds macros for decimal floating-point signaling NaNs to . Add these macros to GCC's implementation. Note that the current C2x draft has these under incorrect names D32_SNAN, D64_SNAN, D128_SNAN. The intent was to change the naming convention to be consistent with other macros when they were moved to , so DEC32_SNAN, DEC64_SNAN, DEC128_NAN, which this patch uses (as does the current draft integration of TS 18661-3 as an Annex to C2x, for its _Decimal* and _Decimal*x types). Bootstrapped with no regressions for x86_64-pc-linux-gnu. gcc/ 2020-11-17 Joseph Myers * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x macros. gcc/testsuite/ 2020-11-17 Joseph Myers * gcc.dg/dfp/c2x-float-dfp-7.c, gcc.dg/dfp/c2x-float-dfp-8.c: New tests. * gcc.dg/c2x-float-no-dfp-3.c: Also check that DEC32_SNAN, DEC64_SNAN and DEC128_SNAN are not defined. --- gcc/ginclude/float.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/ginclude') diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h index 7744699..0fa0046 100644 --- a/gcc/ginclude/float.h +++ b/gcc/ginclude/float.h @@ -601,6 +601,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #undef DEC_NAN #define DEC_NAN (__builtin_nand32 ("")) +/* Signaling NaN in each decimal floating-point type. */ +#undef DEC32_SNAN +#define DEC32_SNAN (__builtin_nansd32 ("")) +#undef DEC64_SNAN +#define DEC64_SNAN (__builtin_nansd64 ("")) +#undef DEC128_SNAN +#define DEC128_SNAN (__builtin_nansd128 ("")) + #endif /* C2X */ #endif /* __DEC32_MANT_DIG__ */ -- cgit v1.1