Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit ec339c3

Browse files
authored
Merge pull request #2302 from kinke/stdint
[stable] core.stdc.stdint: Fix some aliases for Windows/MSVC merged-on-behalf-of: David Nadlinger <code@klickverbot.at>
2 parents 58693d7 + 72ba2c3 commit ec339c3

File tree

1 file changed

+86
-154
lines changed

1 file changed

+86
-154
lines changed

src/core/stdc/stdint.d

Lines changed: 86 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -35,186 +35,118 @@ static if (is(ucent))
3535
alias uint128_t = ucent; ///
3636
}
3737

38-
version (Win32)
39-
{
40-
alias int8_t = byte; ///
41-
alias int16_t = short; ///
42-
alias uint8_t = ubyte; ///
43-
alias uint16_t = ushort; ///
44-
alias int32_t = cpp_long; ///
45-
alias uint32_t = cpp_ulong; ///
46-
alias int64_t = long; ///
47-
alias uint64_t = ulong; ///
48-
49-
alias int_least8_t = byte; ///
50-
alias uint_least8_t = ubyte; ///
51-
alias int_least16_t = short; ///
52-
alias uint_least16_t = ushort; ///
53-
alias int_least32_t = cpp_long; ///
54-
alias uint_least32_t = cpp_ulong; ///
55-
alias int_least64_t = long; ///
56-
alias uint_least64_t = ulong; ///
57-
58-
alias int_fast8_t = byte; ///
59-
alias uint_fast8_t = ubyte; ///
60-
alias int_fast16_t = int; ///
61-
alias uint_fast16_t = uint; ///
62-
alias int_fast32_t = cpp_long; ///
63-
alias uint_fast32_t = cpp_ulong; ///
64-
alias int_fast64_t = long; ///
65-
alias uint_fast64_t = ulong; ///
66-
67-
alias intptr_t = int; ///
68-
alias uintptr_t = uint; ///
69-
alias intmax_t = long; ///
70-
alias uintmax_t = ulong; ///
71-
}
72-
else version (Win64)
38+
version (Windows)
7339
{
7440
alias int8_t = byte; ///
7541
alias int16_t = short; ///
7642
alias uint8_t = ubyte; ///
7743
alias uint16_t = ushort; ///
78-
alias int32_t = int; ///
79-
alias uint32_t = uint; ///
44+
version (CRuntime_DigitalMars)
45+
{
46+
alias int32_t = cpp_long; ///
47+
alias uint32_t = cpp_ulong; ///
48+
}
49+
else
50+
{
51+
alias int32_t = int; ///
52+
alias uint32_t = uint; ///
53+
}
8054
alias int64_t = long; ///
8155
alias uint64_t = ulong; ///
8256

83-
alias int_least8_t = byte; ///
84-
alias uint_least8_t = ubyte; ///
85-
alias int_least16_t = short; ///
86-
alias uint_least16_t = ushort; ///
87-
alias int_least32_t = int; ///
88-
alias uint_least32_t = uint; ///
89-
alias int_least64_t = long; ///
90-
alias uint_least64_t = ulong; ///
91-
92-
alias int_fast8_t = char; ///
93-
alias uint_fast8_t = ubyte; ///
94-
alias int_fast16_t = int; ///
95-
alias uint_fast16_t = uint; ///
96-
alias int_fast32_t = int; ///
97-
alias uint_fast32_t = uint; ///
98-
alias int_fast64_t = long; ///
99-
alias uint_fast64_t = ulong; ///
100-
101-
alias intptr_t = long; ///
102-
alias uintptr_t = ulong; ///
103-
alias intmax_t = long; ///
104-
alias uintmax_t = ulong; ///
57+
alias int_least8_t = byte; ///
58+
alias uint_least8_t = ubyte; ///
59+
alias int_least16_t = short; ///
60+
alias uint_least16_t = ushort; ///
61+
alias int_least32_t = int32_t; ///
62+
alias uint_least32_t = uint32_t; ///
63+
alias int_least64_t = long; ///
64+
alias uint_least64_t = ulong; ///
65+
66+
version (Win64) // TODO: this is wrong but tested in compilable/teststdint.d
67+
alias int_fast8_t = char; ///
68+
else
69+
alias int_fast8_t = byte; ///
70+
alias uint_fast8_t = ubyte; ///
71+
alias int_fast16_t = int; ///
72+
alias uint_fast16_t = uint; ///
73+
alias int_fast32_t = int32_t; ///
74+
alias uint_fast32_t = uint32_t; ///
75+
alias int_fast64_t = long; ///
76+
alias uint_fast64_t = ulong; ///
77+
78+
alias intptr_t = ptrdiff_t; ///
79+
alias uintptr_t = size_t; ///
80+
alias intmax_t = long; ///
81+
alias uintmax_t = ulong; ///
10582
}
10683
else version (OSX)
84+
{
85+
alias int8_t = byte; ///
86+
alias int16_t = short; ///
87+
alias uint8_t = ubyte; ///
88+
alias uint16_t = ushort; ///
89+
alias int32_t = int; ///
90+
alias uint32_t = uint; ///
91+
alias int64_t = cpp_longlong; ///
92+
alias uint64_t = cpp_ulonglong; ///
93+
94+
alias int_least8_t = byte; ///
95+
alias uint_least8_t = ubyte; ///
96+
alias int_least16_t = short; ///
97+
alias uint_least16_t = ushort; ///
98+
alias int_least32_t = int; ///
99+
alias uint_least32_t = uint; ///
100+
alias int_least64_t = int64_t; ///
101+
alias uint_least64_t = uint64_t; ///
102+
103+
alias int_fast8_t = byte; ///
104+
alias uint_fast8_t = ubyte; ///
105+
alias int_fast16_t = short; ///
106+
alias uint_fast16_t = ushort; ///
107+
alias int_fast32_t = int; ///
108+
alias uint_fast32_t = uint; ///
109+
alias int_fast64_t = int64_t; ///
110+
alias uint_fast64_t = uint64_t; ///
111+
112+
alias intptr_t = cpp_long; ///
113+
alias uintptr_t = cpp_ulong; ///
114+
alias intmax_t = long; ///
115+
alias uintmax_t = ulong; ///
116+
}
117+
else version (Posix)
107118
{
108119
alias int8_t = byte; ///
109120
alias int16_t = short; ///
110121
alias uint8_t = ubyte; ///
111122
alias uint16_t = ushort; ///
112123
alias int32_t = int; ///
113124
alias uint32_t = uint; ///
114-
alias int64_t = cpp_longlong; ///
115-
alias uint64_t = cpp_ulonglong; ///
125+
alias int64_t = long; ///
126+
alias uint64_t = ulong; ///
116127

117128
alias int_least8_t = byte; ///
118129
alias uint_least8_t = ubyte; ///
119130
alias int_least16_t = short; ///
120131
alias uint_least16_t = ushort; ///
121132
alias int_least32_t = int; ///
122133
alias uint_least32_t = uint; ///
123-
alias int_least64_t = int64_t; ///
124-
alias uint_least64_t = uint64_t; ///
134+
alias int_least64_t = long; ///
135+
alias uint_least64_t = ulong; ///
125136

126-
alias int_fast8_t = byte; ///
127-
alias uint_fast8_t = ubyte; ///
128-
alias int_fast16_t = short; ///
129-
alias uint_fast16_t = ushort; ///
130-
alias int_fast32_t = int; ///
131-
alias uint_fast32_t = uint; ///
132-
alias int_fast64_t = int64_t; ///
133-
alias uint_fast64_t = uint64_t; ///
137+
alias int_fast8_t = byte; ///
138+
alias uint_fast8_t = ubyte; ///
139+
alias int_fast16_t = ptrdiff_t; ///
140+
alias uint_fast16_t = size_t; ///
141+
alias int_fast32_t = ptrdiff_t; ///
142+
alias uint_fast32_t = size_t; ///
143+
alias int_fast64_t = long; ///
144+
alias uint_fast64_t = ulong; ///
134145

135-
alias intptr_t = cpp_long; ///
136-
alias uintptr_t = cpp_ulong; ///
137-
version (D_LP64)
138-
{
139-
alias intmax_t = cpp_long; ///
140-
alias uintmax_t = cpp_ulong; ///
141-
}
142-
else
143-
{
144-
alias intmax_t = long; ///
145-
alias uintmax_t = ulong; ///
146-
}
147-
}
148-
else version (Posix)
149-
{
150-
version (D_LP64)
151-
{
152-
alias int8_t = byte; ///
153-
alias int16_t = short; ///
154-
alias uint8_t = ubyte; ///
155-
alias uint16_t = ushort; ///
156-
alias int32_t = int; ///
157-
alias uint32_t = uint; ///
158-
alias int64_t = cpp_long; ///
159-
alias uint64_t = cpp_ulong; ///
160-
161-
alias int_least8_t = byte; ///
162-
alias uint_least8_t = ubyte; ///
163-
alias int_least16_t = short; ///
164-
alias uint_least16_t = ushort; ///
165-
alias int_least32_t = int; ///
166-
alias uint_least32_t = uint; ///
167-
alias int_least64_t = cpp_long; ///
168-
alias uint_least64_t = cpp_ulong; ///
169-
170-
alias int_fast8_t = byte; ///
171-
alias uint_fast8_t = ubyte; ///
172-
alias int_fast16_t = cpp_long; ///
173-
alias uint_fast16_t = cpp_ulong; ///
174-
alias int_fast32_t = cpp_long; ///
175-
alias uint_fast32_t = cpp_ulong; ///
176-
alias int_fast64_t = cpp_long; ///
177-
alias uint_fast64_t = cpp_ulong; ///
178-
179-
alias intptr_t = cpp_long; ///
180-
alias uintptr_t = cpp_ulong; ///
181-
alias intmax_t = cpp_long; ///
182-
alias uintmax_t = cpp_ulong; ///
183-
}
184-
else
185-
{
186-
alias int8_t = byte; ///
187-
alias int16_t = short; ///
188-
alias uint8_t = ubyte; ///
189-
alias uint16_t = ushort; ///
190-
alias int32_t = int; ///
191-
alias uint32_t = uint; ///
192-
alias int64_t = long; ///
193-
alias uint64_t = ulong; ///
194-
195-
alias int_least8_t = byte; ///
196-
alias uint_least8_t = ubyte; ///
197-
alias int_least16_t = short; ///
198-
alias uint_least16_t = ushort; ///
199-
alias int_least32_t = int; ///
200-
alias uint_least32_t = uint; ///
201-
alias int_least64_t = long; ///
202-
alias uint_least64_t = ulong; ///
203-
204-
alias int_fast8_t = byte; ///
205-
alias uint_fast8_t = ubyte; ///
206-
alias int_fast16_t = int; ///
207-
alias uint_fast16_t = uint; ///
208-
alias int_fast32_t = int; ///
209-
alias uint_fast32_t = uint; ///
210-
alias int_fast64_t = long; ///
211-
alias uint_fast64_t = ulong; ///
212-
213-
alias intptr_t = int ; ///
214-
alias uintptr_t = uint; ///
215-
alias intmax_t = long; ///
216-
alias uintmax_t = ulong; ///
217-
}
146+
alias intptr_t = ptrdiff_t; ///
147+
alias uintptr_t = size_t; ///
148+
alias intmax_t = long; ///
149+
alias uintmax_t = ulong; ///
218150
}
219151
else
220152
{

0 commit comments

Comments
 (0)