1#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
2// The requirements for some types and corresponding macros are from POSIX.
3type int8_t
4type int16_t
5type int32_t
6type int64_t
7type uint8_t
8type uint16_t
9type uint32_t
10type uint64_t
11
12type int_least8_t
13type int_least16_t
14type int_least32_t
15type int_least64_t
16type uint_least8_t
17type uint_least16_t
18type uint_least32_t
19type uint_least64_t
20
21type int_fast8_t
22type int_fast16_t
23type int_fast32_t
24type int_fast64_t
25type uint_fast8_t
26type uint_fast16_t
27type uint_fast32_t
28type uint_fast64_t
29
30type intptr_t
31type uintptr_t
32
33type intmax_t
34type uintmax_t
35
36macro-int-constant INT8_MIN {promoted:int8_t} == -128
37macro-int-constant INT8_MAX {promoted:int8_t} == 127
38macro-int-constant INT16_MIN {promoted:int16_t} == -32768
39macro-int-constant INT16_MAX {promoted:int16_t} == 32767
40macro-int-constant INT32_MIN {promoted:int32_t} == -2147483647-1
41macro-int-constant INT32_MAX {promoted:int32_t} == 2147483647
42macro-int-constant INT64_MIN {promoted:int64_t} == -9223372036854775807LL-1
43macro-int-constant INT64_MAX {promoted:int64_t} == 9223372036854775807LL
44
45macro-int-constant UINT8_MAX {promoted:uint8_t} == 255
46macro-int-constant UINT16_MAX {promoted:uint16_t} == 65535
47macro-int-constant UINT32_MAX {promoted:uint32_t} == 4294967295U
48macro-int-constant UINT64_MAX {promoted:uint64_t} == 18446744073709551615ULL
49
50macro-int-constant INT_LEAST8_MIN {promoted:int_least8_t} <= -128
51macro-int-constant INT_LEAST8_MAX {promoted:int_least8_t} >= 127
52macro-int-constant INT_LEAST16_MIN {promoted:int_least16_t} <= -32768
53macro-int-constant INT_LEAST16_MAX {promoted:int_least16_t} >= 32767
54macro-int-constant INT_LEAST32_MIN {promoted:int_least32_t} <= -2147483647-1
55macro-int-constant INT_LEAST32_MAX {promoted:int_least32_t} >= 2147483647
56macro-int-constant INT_LEAST64_MIN {promoted:int_least64_t} <= -9223372036854775807LL-1
57macro-int-constant INT_LEAST64_MAX {promoted:int_least64_t} >= 9223372036854775807LL
58
59macro-int-constant UINT_LEAST8_MAX {promoted:uint_least8_t} >= 255
60macro-int-constant UINT_LEAST16_MAX {promoted:uint_least16_t} >= 65535
61macro-int-constant UINT_LEAST32_MAX {promoted:uint_least32_t} >= 4294967295U
62macro-int-constant UINT_LEAST64_MAX {promoted:uint_least64_t} >= 18446744073709551615ULL
63
64macro-int-constant INT_FAST8_MIN {promoted:int_fast8_t} <= -128
65macro-int-constant INT_FAST8_MAX {promoted:int_fast8_t} >= 127
66macro-int-constant INT_FAST16_MIN {promoted:int_fast16_t} <= -32768
67macro-int-constant INT_FAST16_MAX {promoted:int_fast16_t} >= 32767
68macro-int-constant INT_FAST32_MIN {promoted:int_fast32_t} <= -2147483647-1
69macro-int-constant INT_FAST32_MAX {promoted:int_fast32_t} >= 2147483647
70macro-int-constant INT_FAST64_MIN {promoted:int_fast64_t} <= -9223372036854775807LL-1
71macro-int-constant INT_FAST64_MAX {promoted:int_fast64_t} >= 9223372036854775807LL
72
73macro-int-constant UINT_FAST8_MAX {promoted:uint_fast8_t} >= 255
74macro-int-constant UINT_FAST16_MAX {promoted:uint_fast16_t} >= 65535
75macro-int-constant UINT_FAST32_MAX {promoted:uint_fast32_t} >= 4294967295U
76macro-int-constant UINT_FAST64_MAX {promoted:uint_fast64_t} >= 18446744073709551615ULL
77
78macro-int-constant INTPTR_MIN {promoted:intptr_t} <= -32768
79macro-int-constant INTPTR_MAX {promoted:intptr_t} >= 32767
80
81macro-int-constant UINTPTR_MAX {promoted:uintptr_t} >= 65535
82
83macro-int-constant INTMAX_MIN {promoted:intmax_t} <= -9223372036854775807LL-1
84macro-int-constant INTMAX_MAX {promoted:intmax_t} >= 9223372036854775807LL
85
86macro-int-constant UINTMAX_MAX {promoted:uintmax_t} >= 18446744073709551615ULL
87
88macro-int-constant PTRDIFF_MIN {promoted:__PTRDIFF_TYPE__} <= -65535
89macro-int-constant PTRDIFF_MAX {promoted:__PTRDIFF_TYPE__} >= 65535
90
91macro-int-constant SIG_ATOMIC_MIN {promoted:__SIG_ATOMIC_TYPE__}
92macro-int-constant SIG_ATOMIC_MAX {promoted:__SIG_ATOMIC_TYPE__} >= 127
93
94macro-int-constant SIZE_MAX {promoted:__SIZE_TYPE__} >= 65535
95
96macro-int-constant WCHAR_MIN {promoted:__WCHAR_TYPE__}
97macro-int-constant WCHAR_MAX {promoted:__WCHAR_TYPE__} >= 127
98
99macro-int-constant WINT_MIN {promoted:__WINT_TYPE__}
100macro-int-constant WINT_MAX {promoted:__WINT_TYPE__} >= 127
101
102macro INT8_C
103macro INT16_C
104macro INT32_C
105macro INT64_C
106macro UINT8_C
107macro UINT16_C
108macro UINT32_C
109macro UINT64_C
110macro INTMAX_C
111macro UINTMAX_C
112
113// The following expressions are not entirely correct but the current
114// poorfnmatch implementation doesn't grok the right forms (INT*_MAX,
115// INT*_MIN, INT*_C, UINT*_MAX, UINT*_MIN, UINT*_C, int*_t, uint*_t).
116allow INT*
117allow UINT*
118allow *_t
119#endif
120