Skip to content

Commit 41ac0e8

Browse files
Joel Sherrillgithub-cygwin
authored andcommitted
Cygwin: winsup/cygwin/include/limits.h: Add C23 ..._WIDTH definitions
C23 adds the following constants to reflect the bit width of various types: CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, and ULLONG_WIDTH.
1 parent 4054e78 commit 41ac0e8

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

winsup/cygwin/include/limits.h

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)