float.h: Handle C2x __STDC_WANT_IEC_60559_EXT__
authorJoseph Myers <joseph@codesourcery.com>
Tue, 17 Nov 2020 16:30:35 +0000 (16:30 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 17 Nov 2020 16:30:35 +0000 (16:30 +0000)
commit1ffd8e34d182c2c206d8d1543b72e489d6f4b385
tree56b289e11c132df2ac25cdfba32ca150a0775ee7
parentac30c8b8d035cd9259040150f059f1cf3542f626
float.h: Handle C2x __STDC_WANT_IEC_60559_EXT__

TS 18661-1 and 18661-2 have various definitions conditional on
__STDC_WANT_IEC_60559_BFP_EXT__ and __STDC_WANT_IEC_60559_DFP_EXT__
macros.  When those TSes were integrated into C2x, most of the feature
test macro conditionals were removed (with declarations for decimal FP
becoming conditional only on whether decimal FP is supported by the
implementation and those for binary FP becoming unconditionally
required).

A few tests of those feature test macros remained for declarations
that appeared only in Annex F and not in the main part of the
standard.  A change accepted for C2x at the last WG14 meeting (but not
yet added to the working draft in git) was to replace both those
macros by __STDC_WANT_IEC_60559_EXT__; if __STDC_WANT_IEC_60559_EXT__
is defined, the specific declarations in the headers will then depend
on which features are supported by the implementation, as for
declarations not controlled by a feature test macro at all.

Thus, add a check of __STDC_WANT_IEC_60559_EXT__ for CR_DECIMAL_DIG in
float.h, the only case of this change relevant to GCC.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc/
2020-11-17  Joseph Myers  <joseph@codesourcery.com>

* ginclude/float.h (CR_DECIMAL_DIG): Also define for
[__STDC_WANT_IEC_60559_EXT__].

gcc/testsuite/
2020-11-17  Joseph Myers  <joseph@codesourcery.com>

* gcc.dg/cr-decimal-dig-3.c: New test.
gcc/ginclude/float.h
gcc/testsuite/gcc.dg/cr-decimal-dig-3.c [new file with mode: 0644]