Define WIDTH macros for C2x

Programming / Compilers / GCC - jsm28 [138bc75d-0d04-0410-961f-82ee72b054a4] - 2 October 2019 23:50 EDT

As part of the integration of TS 18661-1 into C2x, many features became unconditional features not depending on any feature test macro being defined. This patch updates the conditionals on the *_WIDTH macros in limits.h and stdint.h accordingly so that they are defined for C2x. The macro CR_DECIMAL_DIG in float.h does still require __STDC_WANT_IEC_60559_BFP_EXT__ to be defined, and a test for this is added.

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

gcc:
- ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ || (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
- glimits.h: Likewise.

gcc/testsuite:
- gcc.dg/cr-decimal-dig-2.c: New test.
- gcc.dg/limits-width-2.c: New test. Based on limits-width-1.c.
- gcc.dg/stdint-width-2.c: New test. Based on stdint-width-1.c.

f2ad3afdc93 Define WIDTH macros for C2x.
gcc/ChangeLog | 7 ++
gcc/ginclude/stdint-gcc.h | 5 +-
gcc/glimits.h | 5 +-
gcc/testsuite/ChangeLog | 6 ++
gcc/testsuite/gcc.dg/cr-decimal-dig-2.c | 10 ++
gcc/testsuite/gcc.dg/limits-width-2.c | 54 ++++++++++
gcc/testsuite/gcc.dg/stdint-width-2.c | 175 ++++++++++++++++++++++++++++++++
7 files changed, 258 insertions(+), 4 deletions(-)

Upstream: gcc.gnu.org


  • Share