Define __STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__
authorJoseph Myers <joseph@codesourcery.com>
Fri, 24 Sep 2021 20:11:56 +0000 (20:11 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 24 Sep 2021 20:11:56 +0000 (20:11 +0000)
commit8807e560c04cdaac1c7cca2c2104e43156b2708d
treed4e6d54b6be3c65ff105bf8f373cd5d384ab0ac9
parent4ae2b8a42338f6adba7817539d05ad347154cda3
Define __STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__

TS 18661-1 and C2X specify predefined macros __STDC_IEC_60559_BFP__
and __STDC_IEC_60559_COMPLEX__, making __STDC_IEC_559__ and
__STDC_IEC_559_COMPLEX__ obsolescent (but still included in the
standard).  Now that we have all the functions from TS 18661-1, define
these macros in stdc-predef.h, under the same conditions in which the
older macros are defined, since support for the floating-point
features in TS 18661-1 is now at the same level as that for those in
C11 and before (all library functions and other library APIs present,
but no standard pragma support).

The macros are defined for now with their TS 18661-1 values.  C2X will
give them new values (listed as yyyymmL in the working drafts until
the final standard), at which point there will be the question of what
value to use in stdc-predef.h (where it could depend on
__STDC_VERSION__, but not on feature test macros defined by the user).
My inclination then would be to use the C2X value unconditionally
rather than using an older value to indicate TS support, and only have
any C standard version conditionals for the value when subsequent C
standard versions define further values.

(Note that I'm also inclined, when we implement the C2X change to the
return types of fromfp functions, to make that change unconditional
much like the change made to the types of totalorder functions, with
the old version only supported with compat symbols for already-linked
programs and not as an API for newly built objects.  So using the C2X
value would also accurately reflect not supporting the versions of
APIs in the TS where those ended up being incompatible with the first
version actually added to the standard.)

Tested for x86_64.
NEWS
include/stdc-predef.h