summaryrefslogtreecommitdiff
path: root/gcc/glimits.h
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-10-03 00:50:58 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2019-10-03 00:50:58 +0100
commit202be58655a1964581facd2e514c7d3431258fe8 (patch)
treee811cbd523fca46ee3d3d346249239b8f0daf021 /gcc/glimits.h
parentf5fc32e4a38cee21d1935fd04ad19726f76c06a9 (diff)
Define WIDTH macros for C2x.
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. From-SVN: r276497
Diffstat (limited to 'gcc/glimits.h')
-rw-r--r--gcc/glimits.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/glimits.h b/gcc/glimits.h
index 0cddf0f9dcc..1909344293d 100644
--- a/gcc/glimits.h
+++ b/gcc/glimits.h
@@ -123,8 +123,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
#endif
-#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
-/* TS 18661-1 widths of integer types. */
+#if (defined __STDC_WANT_IEC_60559_BFP_EXT__ \
+ || (defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L))
+/* TS 18661-1 / C2X widths of integer types. */
# undef CHAR_WIDTH
# define CHAR_WIDTH __SCHAR_WIDTH__
# undef SCHAR_WIDTH