@@ -47,10 +47,20 @@ details. */
4747#undef SCHAR_MAX
4848#define SCHAR_MAX 127
4949
50+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
51+ #undef SCHAR_WIDTH
52+ #define SCHAR_WIDTH __SCHAR_WIDTH__
53+ #endif
54+
5055/* Maximum value an `unsigned char' can hold. (Minimum is 0). */
5156#undef UCHAR_MAX
5257#define UCHAR_MAX 255
5358
59+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
60+ #undef UCHAR_WIDTH
61+ #define UCHAR_WIDTH __SCHAR_WIDTH__
62+ #endif
63+
5464/* Minimum and maximum values a `char' can hold. */
5565#ifdef __CHAR_UNSIGNED__
5666#undef CHAR_MIN
@@ -64,16 +74,31 @@ details. */
6474#define CHAR_MAX 127
6575#endif
6676
77+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
78+ #undef CHAR_WIDTH
79+ #define CHAR_WIDTH __SCHAR_WIDTH__
80+ #endif
81+
6782/* Minimum and maximum values a `signed short int' can hold. */
6883#undef SHRT_MIN
6984#define SHRT_MIN (-32768)
7085#undef SHRT_MAX
7186#define SHRT_MAX 32767
7287
88+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
89+ #undef SHRT_WIDTH
90+ #define SHRT_WIDTH __SHRT_WIDTH__
91+ #endif
92+
7393/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */
7494#undef USHRT_MAX
7595#define USHRT_MAX 65535
7696
97+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
98+ #undef USHRT_WIDTH
99+ #define USHRT_WIDTH __SHRT_WIDTH__
100+ #endif
101+
77102/* Minimum and maximum values a `signed int' can hold. */
78103#ifndef __INT_MAX__
79104#define __INT_MAX__ 2147483647
@@ -83,10 +108,20 @@ details. */
83108#undef INT_MAX
84109#define INT_MAX __INT_MAX__
85110
111+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
112+ #undef INT_WIDTH
113+ #define INT_WIDTH __INT_WIDTH__
114+ #endif
115+
86116/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
87117#undef UINT_MAX
88118#define UINT_MAX (INT_MAX * 2U + 1)
89119
120+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
121+ #undef UINT_WIDTH
122+ #define UINT_WIDTH __INT_WIDTH__
123+ #endif
124+
90125/* Minimum and maximum values a `signed long int' can hold.
91126 (Same as `int'). */
92127#ifndef __LONG_MAX__
@@ -97,10 +132,21 @@ details. */
97132#undef LONG_MAX
98133#define LONG_MAX __LONG_MAX__
99134
135+
136+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
137+ #undef LONG_WIDTH
138+ #define LONG_WIDTH __LONG_WIDTH__
139+ #endif
140+
100141/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
101142#undef ULONG_MAX
102143#define ULONG_MAX (LONG_MAX * 2UL + 1)
103144
145+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
146+ #undef ULONG_WIDTH
147+ #define ULONG_WIDTH __LONG_WIDTH__
148+ #endif
149+
104150/* Minimum and maximum values a `signed long long int' can hold. */
105151#ifndef __LONG_LONG_MAX__
106152#define __LONG_LONG_MAX__ 9223372036854775807LL
@@ -124,11 +170,21 @@ details. */
124170#undef LLONG_MAX
125171#define LLONG_MAX __LONG_LONG_MAX__
126172
173+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
174+ #undef LLONG_WIDTH
175+ #define LLONG_WIDTH __LONG_LONG_WIDTH__
176+ #endif
177+
127178/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
128179#undef ULLONG_MAX
129180#define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
130181#endif /* __ISO_C_VISIBLE >= 1999 */
131182
183+ #if defined(__STDC_WANT_IEC_60559_BFP_EXT__ ) || __ISO_C_VISIBLE >= 2023
184+ #undef ULLONG_WIDTH
185+ #define ULLONG_WIDTH __LONG_LONG_WIDTH__
186+ #endif
187+
132188/* Maximum size of ssize_t. Sadly, gcc doesn't give us __SSIZE_MAX__
133189 the way it does for __SIZE_MAX__. On the other hand, we happen to
134190 know that for Cygwin, ssize_t is 'long' and this particular header
0 commit comments