1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _INTSAFE_H_INCLUDED_
8#define _INTSAFE_H_INCLUDED_
9
10#include <winapifamily.h>
11
12#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13
14#include <_mingw.h>
15#include <wtypesbase.h>
16#include <specstrings.h>
17
18#define INT8_MIN (-128)
19#define INT8_MAX 127
20#define UINT8_MAX 255
21#define BYTE_MAX 255
22#define INT16_MIN (-32768)
23#define INT16_MAX 32767
24#define SHORT_MIN (-32768)
25#define SHORT_MAX 32767
26#define UINT16_MAX 65535
27#define USHORT_MAX 65535
28#define WORD_MAX 65535
29#define INT32_MIN (-0x7fffffff - 1)
30#define INT32_MAX 0x7fffffff
31#define INT_MIN (-0x7fffffff - 1)
32#define INT_MAX 0x7fffffff
33#define UINT32_MAX 0xffffffffu
34#define UINT_MAX 0xffffffffu
35#define DWORD_MAX __MSABI_LONG(0xffffffffu)
36#define INT64_MIN (-0x7fffffffffffffff - 1)
37#define INT64_MAX 0x7fffffffffffffff
38#define LONGLONG_MIN (-0x7fffffffffffffffll - 1)
39#define LONG64_MIN (-0x7fffffffffffffffll - 1)
40#define LONGLONG_MAX 0x7fffffffffffffffll
41#define LONG64_MAX 0x7fffffffffffffffll
42#define UINT64_MAX 0xffffffffffffffffu
43#define ULONGLONG_MAX 0xffffffffffffffffull
44#define ULONG64_MAX 0xffffffffffffffffull
45#define DWORDLONG_MAX 0xffffffffffffffffull
46#define DWORD64_MAX 0xffffffffffffffffull
47
48#ifdef __LP64__
49#define LONG_MIN (-0x7fffffffffffffff - 1)
50#define LONG_MAX 0x7fffffffffffffff
51#define ULONG_MAX 0xffffffffffffffffu
52#else
53#define LONG_MIN (-0x7fffffffl - 1)
54#define LONG_MAX 0x7fffffffl
55#define ULONG_MAX 0xfffffffful
56#endif
57
58#ifdef _WIN64
59#define PTRDIFF_T_MIN (-0x7fffffffffffffff - 1)
60#define PTRDIFF_T_MAX 0x7fffffffffffffff
61#define SIZE_T_MAX 0xffffffffffffffffu
62#define INT_PTR_MIN (-0x7fffffffffffffffll - 1)
63#define INT_PTR_MAX 0x7fffffffffffffffll
64#define UINT_PTR_MAX 0xffffffffffffffffull
65#define LONG_PTR_MIN (-0x7fffffffffffffffll - 1)
66#define LONG_PTR_MAX 0x7fffffffffffffffll
67#define ULONG_PTR_MAX 0xffffffffffffffffull
68#else
69#define PTRDIFF_T_MIN (-0x7fffffff - 1)
70#define PTRDIFF_T_MAX 0x7fffffff
71#define SIZE_T_MAX 0xffffffffu
72#define INT_PTR_MIN (-0x7fffffff - 1)
73#define INT_PTR_MAX 0x7fffffff
74#define UINT_PTR_MAX 0xffffffffu
75#define LONG_PTR_MIN (-0x7fffffffl - 1)
76#define LONG_PTR_MAX 0x7fffffffl
77#define ULONG_PTR_MAX 0xfffffffful
78#endif
79#define SSIZE_T_MIN LONG_PTR_MIN
80#define SSIZE_T_MAX LONG_PTR_MAX
81#define _SIZE_T_MAX ULONG_PTR_MAX
82#define DWORD_PTR_MAX ULONG_PTR_MAX
83
84#define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216)
85
86#ifndef S_OK
87#define S_OK ((HRESULT)0)
88#endif
89
90#ifdef __clang__
91#if __has_builtin(__builtin_add_overflow)
92#define __MINGW_INTSAFE_WORKS
93#endif
94#elif __GNUC__ >= 5
95#define __MINGW_INTSAFE_WORKS
96#endif
97
98#ifdef __MINGW_INTSAFE_WORKS
99
100#ifndef __MINGW_INTSAFE_API
101#define __MINGW_INTSAFE_API FORCEINLINE
102#endif
103
104/** If CHAR is unsigned, use static inline for functions that operate
105on chars. This avoids the risk of linking to the wrong function when
106different translation units with different types of chars are linked
107together, and code using signed chars will not be affected. */
108#ifndef __MINGW_INTSAFE_CHAR_API
109#ifdef __CHAR_UNSIGNED__
110#define __MINGW_INTSAFE_CHAR_API static inline
111#else
112#define __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_API
113#endif
114#endif
115
116#define __MINGW_INTSAFE_BODY(operation, x, y, overflow) \
117{ \
118 if (__builtin_##operation##_overflow(x, y, result)) \
119 { \
120 *result = overflow; \
121 return INTSAFE_E_ARITHMETIC_OVERFLOW; \
122 } \
123 return S_OK; \
124}
125
126#define __MINGW_INTSAFE_CONV_UCHAR(name, type_src, type_dest) \
127 HRESULT name(type_src operand, type_dest * result) \
128 __MINGW_INTSAFE_BODY(add, operand, 0, 0)
129
130#define __MINGW_INTSAFE_CONV(name, type_src, type_dest) \
131 HRESULT name(type_src operand, type_dest * result) \
132 __MINGW_INTSAFE_BODY(add, operand, 0, ~0)
133
134#define __MINGW_INTSAFE_MATH(name, type, operation) \
135 HRESULT name(type x, type y, type * result) \
136 __MINGW_INTSAFE_BODY(operation, x, y, ~0)
137
138#ifdef __CHAR_UNSIGNED__
139#define __MINGW_INTSAFE_CONV_CHAR __MINGW_INTSAFE_CONV_UCHAR
140#else
141#define __MINGW_INTSAFE_CONV_CHAR __MINGW_INTSAFE_CONV
142#endif
143
144__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt8ToInt8, UINT8, INT8)
145__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UInt8ToChar, UINT8, CHAR)
146__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ByteToInt8, BYTE, INT8)
147__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ByteToChar, BYTE, CHAR)
148__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(Int8ToUChar, INT8, UCHAR)
149__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUInt8, INT8, UINT8)
150__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUShort, INT8, USHORT)
151__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUInt, INT8, UINT)
152__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToULong, INT8, ULONG)
153__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUIntPtr, INT8, UINT_PTR)
154__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToULongPtr, INT8, ULONG_PTR)
155__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToULongLong, INT8, ULONGLONG)
156__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(UShortToUChar, USHORT, UCHAR)
157__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToUInt8, USHORT, UINT8)
158__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToByte, USHORT, BYTE)
159__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToInt8, USHORT, INT8)
160__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToShort, USHORT, SHORT)
161__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UShortToChar, USHORT, CHAR)
162__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(WordToUChar, WORD, UCHAR)
163__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(WordToByte, WORD, BYTE)
164__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(WordToShort, WORD, SHORT)
165__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(WordToChar, WORD, CHAR)
166__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ShortToUChar, SHORT, UCHAR)
167__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUInt8, SHORT, UINT8)
168__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToByte, SHORT, BYTE)
169__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToInt8, SHORT, INT8)
170__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUShort, SHORT, USHORT)
171__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToWord, SHORT, WORD)
172__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUInt, SHORT, UINT)
173__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToULong, SHORT, ULONG)
174__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUIntPtr, SHORT, UINT_PTR)
175__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToULongPtr, SHORT, ULONG_PTR)
176__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToDWordPtr, SHORT, DWORD_PTR)
177__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToULongLong, SHORT, ULONGLONG)
178__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ShortToChar, SHORT, CHAR)
179__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(UIntToUChar, UINT, UCHAR)
180__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToUInt8, UINT, UINT8)
181__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToByte, UINT, BYTE)
182__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToInt8, UINT, INT8)
183__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToUShort, UINT, USHORT)
184__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToWord, UINT, WORD)
185__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToShort, UINT, SHORT)
186__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToLong, UINT, LONG)
187__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToInt, UINT, INT)
188__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToIntPtr, UINT, INT_PTR)
189__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToPtrdiffT, UINT, ptrdiff_t)
190__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToLongPtr, UINT, LONG_PTR)
191__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToSSIZET, UINT, SSIZE_T)
192__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UIntToChar, UINT, CHAR)
193__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ULongToUChar, ULONG, UCHAR)
194__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUInt8, ULONG, UINT8)
195__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToByte, ULONG, BYTE)
196__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToInt8, ULONG, INT8)
197__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUShort, ULONG, USHORT)
198__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToWord, ULONG, WORD)
199__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToShort, ULONG, SHORT)
200__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUInt, ULONG, UINT)
201__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToLong, ULONG, LONG)
202__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToInt, ULONG, INT)
203__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUIntPtr, ULONG, UINT_PTR)
204__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToIntPtr, ULONG, INT_PTR)
205__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToPtrdiffT, ULONG, ptrdiff_t)
206__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToLongPtr, ULONG, LONG_PTR)
207__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToSSIZET, ULONG, SSIZE_T)
208__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ULongToChar, ULONG, CHAR)
209__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(DWordToUChar, DWORD, UCHAR)
210__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToByte, DWORD, BYTE)
211__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToUShort, DWORD, USHORT)
212__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToWord, DWORD, WORD)
213__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToShort, DWORD, SHORT)
214__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToUInt, DWORD, UINT)
215__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToLong, DWORD, LONG)
216__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToInt, DWORD, INT)
217__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToUIntPtr, DWORD, UINT_PTR)
218__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToIntPtr, DWORD, INT_PTR)
219__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToPtrdiffT, DWORD, ptrdiff_t)
220__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToLongPtr, DWORD, LONG_PTR)
221__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToSSIZET, DWORD, SSIZE_T)
222__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(DWordToChar, DWORD, CHAR)
223__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(LongToUChar, LONG, UCHAR)
224__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUInt8, LONG, UINT8)
225__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToByte, LONG, BYTE)
226__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToInt8, LONG, INT8)
227__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUShort, LONG, USHORT)
228__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToWord, LONG, WORD)
229__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToShort, LONG, SHORT)
230__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUInt, LONG, UINT)
231__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToULong, LONG, ULONG)
232__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToDWord, LONG, DWORD)
233__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToInt, LONG, INT)
234__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUIntPtr, LONG, UINT_PTR)
235__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToSizeT, LONG, size_t)
236__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToULongPtr, LONG, ULONG_PTR)
237__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToDWordPtr, LONG, DWORD_PTR)
238__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToIntPtr, LONG, INT_PTR)
239__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToPtrdiffT, LONG, ptrdiff_t)
240__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToULongLong, LONG, ULONGLONG)
241__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(LongToChar, LONG, CHAR)
242__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(IntToUChar, INT, UCHAR)
243__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUInt8, INT, UINT8)
244__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToByte, INT, BYTE)
245__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToInt8, INT, INT8)
246__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUShort, INT, USHORT)
247__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToWord, INT, WORD)
248__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToShort, INT, SHORT)
249__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUInt, INT, UINT)
250__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToULong, INT, ULONG)
251__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToDWord, INT, DWORD)
252__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUIntPtr, INT, UINT_PTR)
253__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToSizeT, INT, size_t)
254__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToULongPtr, INT, ULONG_PTR)
255__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToDWordPtr, INT, DWORD_PTR)
256__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToULongLong, INT, ULONGLONG)
257__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(IntToChar, INT, CHAR)
258__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(UIntPtrToUChar, UINT_PTR, UCHAR)
259__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUInt8, UINT_PTR, UINT8)
260__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt8, UINT_PTR, INT8)
261__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUInt16, UINT_PTR, UINT16)
262__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUShort, UINT_PTR, USHORT)
263__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt16, UINT_PTR, INT16)
264__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToShort, UINT_PTR, SHORT)
265__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUInt, UINT_PTR, UINT)
266__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToULong, UINT_PTR, ULONG)
267__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToDWord, UINT_PTR, DWORD)
268__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToLong, UINT_PTR, LONG)
269__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt, UINT_PTR, INT)
270__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToIntPtr, UINT_PTR, INT_PTR)
271__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToLongPtr, UINT_PTR, LONG_PTR)
272__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToSSIZET, UINT_PTR, SSIZE_T)
273__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt64, UINT_PTR, INT64)
274__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToLongLong, UINT_PTR, LONGLONG)
275__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UIntPtrToChar, UINT_PTR, CHAR)
276__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt, size_t, UINT)
277__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToULong, size_t, ULONG)
278__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToDWord, size_t, DWORD)
279__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLong, size_t, LONG)
280__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt, size_t, INT)
281__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToIntPtr, size_t, INT_PTR)
282__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToPtrdiffT, size_t, ptrdiff_t)
283__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLongPtr, size_t, LONG_PTR)
284__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToSSIZET, size_t, SSIZE_T)
285__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt64, size_t, INT64)
286__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt32, size_t, UINT32)
287__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ULongPtrToUChar, ULONG_PTR, UCHAR)
288__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUInt8, ULONG_PTR, UINT8)
289__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToInt8, ULONG_PTR, INT8)
290__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUShort, ULONG_PTR, USHORT)
291__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToShort, ULONG_PTR, SHORT)
292__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUInt, ULONG_PTR, UINT)
293__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToULong, ULONG_PTR, ULONG)
294__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToDWord, ULONG_PTR, DWORD)
295__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToLong, ULONG_PTR, LONG)
296__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToInt, ULONG_PTR, INT)
297__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUIntPtr, ULONG_PTR, UINT_PTR)
298__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToIntPtr, ULONG_PTR, INT_PTR)
299__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToPtrdiffT, ULONG_PTR, ptrdiff_t)
300__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToLongPtr, ULONG_PTR, LONG_PTR)
301__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToSSIZET, ULONG_PTR, SSIZE_T)
302__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToInt64, ULONG_PTR, INT64)
303__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToLongLong, ULONG_PTR, LONGLONG)
304__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ULongPtrToChar, ULONG_PTR, CHAR)
305__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToUInt, DWORD_PTR, UINT)
306__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToULong, DWORD_PTR, ULONG)
307__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToDWord, DWORD_PTR, DWORD)
308__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToLong, DWORD_PTR, LONG)
309__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToInt, DWORD_PTR, INT)
310__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToUIntPtr, DWORD_PTR, UINT_PTR)
311__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToIntPtr, DWORD_PTR, INT_PTR)
312__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToPtrdiffT, DWORD_PTR, ptrdiff_t)
313__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToLongPtr, DWORD_PTR, LONG_PTR)
314__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToSSIZET, DWORD_PTR, SSIZE_T)
315__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToInt64, DWORD_PTR, INT64)
316__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(IntPtrToUChar, INT_PTR, UCHAR)
317__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUInt8, INT_PTR, UINT8)
318__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToInt8, INT_PTR, INT8)
319__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUShort, INT_PTR, USHORT)
320__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToShort, INT_PTR, SHORT)
321__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUInt, INT_PTR, UINT)
322__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToULong, INT_PTR, ULONG)
323__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToDWord, INT_PTR, DWORD)
324__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToLong, INT_PTR, LONG)
325__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToInt, INT_PTR, INT)
326__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUIntPtr, INT_PTR, UINT_PTR)
327__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToSizeT, INT_PTR, size_t)
328__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToULongPtr, INT_PTR, ULONG_PTR)
329__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToDWordPtr, INT_PTR, DWORD_PTR)
330__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToLongPtr, INT_PTR, LONG_PTR)
331__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToULongLong, INT_PTR, ULONGLONG)
332__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(IntPtrToChar, INT_PTR, CHAR)
333__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt, ptrdiff_t, UINT)
334__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULong, ptrdiff_t, ULONG)
335__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWord, ptrdiff_t, DWORD)
336__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToLong, ptrdiff_t, LONG)
337__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt, ptrdiff_t, INT)
338__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUIntPtr, ptrdiff_t, UINT_PTR)
339__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToSizeT, ptrdiff_t, size_t)
340__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULongPtr, ptrdiff_t, ULONG_PTR)
341__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWordPtr, ptrdiff_t, DWORD_PTR)
342__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(LongPtrToUChar, LONG_PTR, UCHAR)
343__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUInt8, LONG_PTR, UINT8)
344__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToInt8, LONG_PTR, INT8)
345__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUShort, LONG_PTR, USHORT)
346__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToShort, LONG_PTR, SHORT)
347__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUInt, LONG_PTR, UINT)
348__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToULong, LONG_PTR, ULONG)
349__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToDWord, LONG_PTR, DWORD)
350__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToLong, LONG_PTR, LONG)
351__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToInt, LONG_PTR, INT)
352__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUIntPtr, LONG_PTR, UINT_PTR)
353__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToSizeT, LONG_PTR, size_t)
354__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToULongPtr, LONG_PTR, ULONG_PTR)
355__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToDWordPtr, LONG_PTR, DWORD_PTR)
356__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToIntPtr, LONG_PTR, INT_PTR)
357__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToULongLong, LONG_PTR, ULONGLONG)
358__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(LongPtrToChar, LONG_PTR, CHAR)
359__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToUInt, SSIZE_T, UINT)
360__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToULong, SSIZE_T, ULONG)
361__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToDWord, SSIZE_T, DWORD)
362__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToLong, SSIZE_T, LONG)
363__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToInt, SSIZE_T, INT)
364__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToUIntPtr, SSIZE_T, UINT_PTR)
365__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToSizeT, SSIZE_T, size_t)
366__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToULongPtr, SSIZE_T, ULONG_PTR)
367__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToDWordPtr, SSIZE_T, DWORD_PTR)
368__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToIntPtr, SSIZE_T, INT_PTR)
369__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ULongLongToUChar, ULONGLONG, UCHAR)
370__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUInt8, ULONGLONG, UINT8)
371__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToInt8, ULONGLONG, INT8)
372__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUShort, ULONGLONG, USHORT)
373__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToShort, ULONGLONG, SHORT)
374__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUInt, ULONGLONG, UINT)
375__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToULong, ULONGLONG, ULONG)
376__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToDWord, ULONGLONG, DWORD)
377__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToLong, ULONGLONG, LONG)
378__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToInt, ULONGLONG, INT)
379__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUIntPtr, ULONGLONG, UINT_PTR)
380__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToSizeT, ULONGLONG, size_t)
381__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToULongPtr, ULONGLONG, ULONG_PTR)
382__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToDWordPtr, ULONGLONG, DWORD_PTR)
383__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToIntPtr, ULONGLONG, INT_PTR)
384__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToPtrdiffT, ULONGLONG, ptrdiff_t)
385__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToLongPtr, ULONGLONG, LONG_PTR)
386__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToSSIZET, ULONGLONG, SSIZE_T)
387__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToInt64, ULONGLONG, INT64)
388__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToLongLong, ULONGLONG, LONGLONG)
389__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ULongLongToChar, ULONGLONG, CHAR)
390__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToUInt, INT64, UINT)
391__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToULong, INT64, ULONG)
392__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToDWord, INT64, DWORD)
393__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToLong, INT64, LONG)
394__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToInt, INT64, INT)
395__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToUIntPtr, INT64, UINT_PTR)
396__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToSizeT, INT64, size_t)
397__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToULongPtr, INT64, ULONG_PTR)
398__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToDWordPtr, INT64, DWORD_PTR)
399__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToIntPtr, INT64, INT_PTR)
400__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToPtrdiffT, INT64, ptrdiff_t)
401__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToLongPtr, INT64, LONG_PTR)
402__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToSSIZET, INT64, SSIZE_T)
403__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToULongLong, INT64, ULONGLONG)
404__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(LongLongToUChar, LONGLONG, UCHAR)
405__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToUInt8, LONGLONG, UINT8)
406__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToInt8, LONGLONG, INT8)
407__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToUShort, LONGLONG, USHORT)
408__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToShort, LONGLONG, SHORT)
409__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToUInt, LONGLONG, UINT)
410__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToULong, LONGLONG, ULONG)
411__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToLong, LONGLONG, LONG)
412__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToInt, LONGLONG, INT)
413__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToIntPtr, LONGLONG, INT_PTR)
414__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToLongPtr, LONGLONG, LONG_PTR)
415__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToULongLong, LONGLONG, ULONGLONG)
416__MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(LongLongToChar, LONGLONG, CHAR)
417
418__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Add, UINT8, add)
419__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Add, INT8, add)
420__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UShortAdd, USHORT, add)
421__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(WordAdd, WORD, add)
422__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ShortAdd, SHORT, add)
423__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntAdd, UINT, add)
424__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongAdd, ULONG, add)
425__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordAdd, DWORD, add)
426__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongAdd, LONG, add)
427__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntAdd, INT, add)
428__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrAdd, UINT_PTR, add)
429__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTAdd, size_t, add)
430__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrAdd, ULONG_PTR, add)
431__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrAdd, DWORD_PTR, add)
432__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrAdd, INT_PTR, add)
433__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTAdd, ptrdiff_t, add)
434__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrAdd, LONG_PTR, add)
435__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETAdd, SIZE_T, add)
436__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETAdd, SSIZE_T, add)
437__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongAdd, ULONGLONG, add)
438__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongAdd, LONGLONG, add)
439
440__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Sub, UINT8, sub)
441__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Sub, INT8, sub)
442__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UShortSub, USHORT, sub)
443__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(WordSub, WORD, sub)
444__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ShortSub, SHORT, sub)
445__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntSub, UINT, sub)
446__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongSub, ULONG, sub)
447__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordSub, DWORD, sub)
448__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongSub, LONG, sub)
449__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntSub, INT, sub)
450__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrSub, UINT_PTR, sub)
451__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTSub, size_t, sub)
452__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrSub, ULONG_PTR, sub)
453__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrSub, DWORD_PTR, sub)
454__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrSub, INT_PTR, sub)
455__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTSub, ptrdiff_t, sub)
456__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrSub, LONG_PTR, sub)
457__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETSub, SIZE_T, sub)
458__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETSub, SSIZE_T, sub)
459__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongSub, ULONGLONG, sub)
460__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongSub, LONGLONG, sub)
461
462__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Mult, UINT8, mul)
463__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Mult, INT8, mul)
464__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UShortMult, USHORT, mul)
465__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(WordMult, WORD, mul)
466__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ShortMult, SHORT, mul)
467__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntMult, UINT, mul)
468__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongMult, ULONG, mul)
469__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordMult, DWORD, mul)
470__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongMult, LONG, mul)
471__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntMult, INT, mul)
472__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrMult, UINT_PTR, mul)
473__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTMult, size_t, mul)
474__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrMult, ULONG_PTR, mul)
475__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrMult, DWORD_PTR, mul)
476__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrMult, INT_PTR, mul)
477__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTMult, ptrdiff_t, mul)
478__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrMult, LONG_PTR, mul)
479__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETMult, SIZE_T, mul)
480__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETMult, SSIZE_T, mul)
481__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul)
482__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul)
483
484#define Int8ToByte Int8ToUInt8
485#define Int8ToUInt16 Int8ToUShort
486#define Int8ToWord Int8ToUShort
487#define Int8ToUInt32 Int8ToUInt
488#define Int8ToDWord Int8ToULong
489#define Int8ToDWordPtr Int8ToULongPtr
490#define Int8ToDWordLong Int8ToULongLong
491#define Int8ToULong64 Int8ToULongLong
492#define Int8ToDWord64 Int8ToULongLong
493#define Int8ToUInt64 Int8ToULongLong
494__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToSizeT, INT8, size_t)
495#define Int8ToSIZET Int8ToULongPtr
496#define ShortToUInt16 ShortToUShort
497#define ShortToUInt32 ShortToUInt
498#define ShortToDWord ShortToULong
499#define ShortToDWordLong ShortToULongLong
500#define ShortToULong64 ShortToULongLong
501#define ShortToDWord64 ShortToULongLong
502#define ShortToUInt64 ShortToULongLong
503__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToSizeT, SHORT, size_t)
504#define ShortToSIZET ShortToULongPtr
505#define Int16ToChar ShortToChar
506#define Int16ToInt8 ShortToInt8
507#define Int16ToUChar ShortToUChar
508#define Int16ToUInt8 ShortToUInt8
509#define Int16ToByte ShortToUInt8
510#define Int16ToUShort ShortToUShort
511#define Int16ToUInt16 ShortToUShort
512#define Int16ToWord ShortToUShort
513#define Int16ToUInt ShortToUInt
514#define Int16ToUInt32 ShortToUInt
515#define Int16ToUIntPtr ShortToUIntPtr
516#define Int16ToULong ShortToULong
517#define Int16ToULongPtr ShortToULongPtr
518#define Int16ToDWord ShortToULong
519#define Int16ToDWordPtr ShortToULongPtr
520#define Int16ToULongLong ShortToULongLong
521#define Int16ToDWordLong ShortToULongLong
522#define Int16ToULong64 ShortToULongLong
523#define Int16ToDWord64 ShortToULongLong
524#define Int16ToUInt64 ShortToULongLong
525__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int16ToSizeT, INT16, size_t)
526#define Int16ToSIZET ShortToULongPtr
527#define UShortToInt16 UShortToShort
528#define UInt16ToChar UShortToChar
529#define UInt16ToInt8 UShortToInt8
530#define UInt16ToUChar UShortToUChar
531#define UInt16ToUInt8 UShortToUInt8
532#define UInt16ToByte UShortToUInt8
533#define UInt16ToShort UShortToShort
534#define UInt16ToInt16 UShortToShort
535#define WordToInt8 UShortToInt8
536#define WordToUInt8 UShortToUInt8
537#define WordToInt16 UShortToShort
538#define IntToInt16 IntToShort
539#define IntToUInt16 IntToUShort
540#define IntToDWordLong IntToULongLong
541#define IntToULong64 IntToULongLong
542#define IntToDWord64 IntToULongLong
543#define IntToUInt64 IntToULongLong
544#define IntToSIZET IntToULongPtr
545#define Int32ToChar IntToChar
546#define Int32ToInt8 IntToInt8
547#define Int32ToUChar IntToUChar
548#define Int32ToByte IntToUInt8
549#define Int32ToUInt8 IntToUInt8
550#define Int32ToShort IntToShort
551#define Int32ToInt16 IntToShort
552#define Int32ToUShort IntToUShort
553#define Int32ToUInt16 IntToUShort
554#define Int32ToWord IntToUShort
555#define Int32ToUInt IntToUInt
556#define Int32ToUInt32 IntToUInt
557#define Int32ToUIntPtr IntToUIntPtr
558#define Int32ToULong IntToULong
559#define Int32ToULongPtr IntToULongPtr
560#define Int32ToDWord IntToULong
561#define Int32ToDWordPtr IntToULongPtr
562#define Int32ToULongLong IntToULongLong
563#define Int32ToDWordLong IntToULongLong
564#define Int32ToULong64 IntToULongLong
565#define Int32ToDWord64 IntToULongLong
566#define Int32ToUInt64 IntToULongLong
567__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int32ToSizeT, INT32, size_t)
568#define Int32ToSIZET IntToULongPtr
569#define IntPtrToByte IntPtrToUInt8
570#define IntPtrToInt16 IntPtrToShort
571#define IntPtrToUInt16 IntPtrToUShort
572#define IntPtrToWord IntPtrToUShort
573#define IntPtrToInt32 IntPtrToInt
574#define IntPtrToUInt32 IntPtrToUInt
575#define IntPtrToDWordLong IntPtrToULongLong
576#define IntPtrToULong64 IntPtrToULongLong
577#define IntPtrToDWord64 IntPtrToULongLong
578#define IntPtrToUInt64 IntPtrToULongLong
579#define IntPtrToSIZET IntPtrToULongPtr
580#define UIntToInt16 UIntToShort
581#define UIntToUInt16 UIntToUShort
582#define UIntToInt32 UIntToInt
583#define UInt32ToChar UIntToChar
584#define UInt32ToInt8 UIntToInt8
585#define UInt32ToUChar UIntToUChar
586#define UInt32ToUInt8 UIntToUInt8
587#define UInt32ToByte UInt32ToUInt8
588#define UInt32ToShort UIntToShort
589#define UInt32ToInt16 UIntToShort
590#define UInt32ToUShort UIntToUShort
591#define UInt32ToUInt16 UIntToUShort
592#define UInt32ToWord UIntToUShort
593#define UInt32ToInt UIntToInt
594#define UInt32ToIntPtr UIntToIntPtr
595#define UInt32ToInt32 UIntToInt
596#define UInt32ToLong UIntToLong
597#define UInt32ToLongPtr UIntToLongPtr
598#define UInt32ToPtrdiffT UIntToPtrdiffT
599#define UInt32ToSSIZET UIntToSSIZET
600#define UIntPtrToByte UIntPtrToUInt8
601#define UIntPtrToWord UIntPtrToUShort
602#define UIntPtrToInt32 UIntPtrToInt
603#define UIntPtrToUInt32 UIntPtrToUInt
604#define UIntPtrToLong64 UIntPtrToLongLong
605__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToPtrdiffT, UINT_PTR, ptrdiff_t)
606#define LongToInt16 LongToShort
607#define LongToUInt16 LongToUShort
608#define LongToInt32 LongToInt
609#define LongToUInt32 LongToUInt
610#define LongToDWordLong LongToULongLong
611#define LongToULong64 LongToULongLong
612#define LongToDWord64 LongToULongLong
613#define LongToUInt64 LongToULongLong
614#define LongToSIZET LongToULongPtr
615#define LongPtrToByte LongPtrToUInt8
616#define LongPtrToInt16 LongPtrToShort
617#define LongPtrToUInt16 LongPtrToUShort
618#define LongPtrToWord LongPtrToUShort
619#define LongPtrToInt32 LongPtrToInt
620#define LongPtrToUInt32 LongPtrToUInt
621#define LongPtrToDWordLong LongPtrToULongLong
622#define LongPtrToULong64 LongPtrToULongLong
623#define LongPtrToDWord64 LongPtrToULongLong
624#define LongPtrToUInt64 LongPtrToULongLong
625#define LongPtrToSIZET LongPtrToULongPtr
626#define ULongToInt16 ULongToShort
627#define ULongToUInt16 ULongToUShort
628#define ULongToInt32 ULongToInt
629#define ULongToUInt32 ULongToUInt
630#define ULongPtrToByte ULongPtrToUInt8
631#define ULongPtrToInt16 ULongPtrToShort
632#define ULongPtrToUInt16 ULongPtrToUShort
633#define ULongPtrToWord ULongPtrToUShort
634#define ULongPtrToInt32 ULongPtrToInt
635#define ULongPtrToUInt32 ULongPtrToUInt
636#define ULongPtrToLong64 ULongPtrToLongLong
637#define DWordToInt8 ULongToInt8
638#define DWordToUInt8 ULongToUInt8
639#define DWordToInt16 ULongToShort
640#define DWordToUInt16 ULongToUShort
641#define DWordToInt32 ULongToInt
642#define DWordToUInt32 ULongToUInt
643#define DWordPtrToInt8 ULongPtrToInt8
644#define DWordPtrToUChar ULongPtrToUChar
645#define DWordPtrToChar ULongPtrToChar
646#define DWordPtrToUInt8 ULongPtrToUInt8
647#define DWordPtrToByte ULongPtrToUInt8
648#define DWordPtrToShort ULongPtrToShort
649#define DWordPtrToInt16 ULongPtrToShort
650#define DWordPtrToUShort ULongPtrToUShort
651#define DWordPtrToUInt16 ULongPtrToUShort
652#define DWordPtrToWord ULongPtrToUShort
653#define DWordPtrToInt32 ULongPtrToInt
654#define DWordPtrToUInt32 ULongPtrToUInt
655#define DWordPtrToLongLong ULongPtrToLongLong
656#define DWordPtrToLong64 ULongPtrToLongLong
657#define LongLongToByte LongLongToUInt8
658#define LongLongToInt16 LongLongToShort
659#define LongLongToUInt16 LongLongToUShort
660#define LongLongToWord LongLongToUShort
661#define LongLongToInt32 LongLongToInt
662#define LongLongToUInt32 LongLongToUInt
663#define LongLongToUIntPtr Int64ToUIntPtr
664#define LongLongToULongPtr Int64ToULongPtr
665#define LongLongToDWord LongLongToULong
666#define LongLongToDWordPtr LongLongToULongPtr
667#define LongLongToDWordLong LongLongToULongLong
668#define LongLongToULong64 LongLongToULongLong
669#define LongLongToDWord64 LongLongToULongLong
670#define LongLongToUInt64 LongLongToULongLong
671__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToPtrdiffT, LONGLONG, ptrdiff_t)
672__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToSizeT, LONGLONG, size_t)
673#define LongLongToSSIZET LongLongToLongPtr
674#define LongLongToSIZET LongLongToULongPtr
675#define Long64ToChar LongLongToChar
676#define Long64ToInt8 LongLongToInt8
677#define Long64ToUChar LongLongToUChar
678#define Long64ToUInt8 LongLongToUInt8
679#define Long64ToByte LongLongToUInt8
680#define Long64ToShort LongLongToShort
681#define Long64ToInt16 LongLongToShort
682#define Long64ToUShort LongLongToUShort
683#define Long64ToUInt16 LongLongToUShort
684#define Long64ToWord LongLongToUShort
685#define Long64ToInt LongLongToInt
686#define Long64ToInt32 LongLongToInt
687#define Long64ToIntPtr LongLongToIntPtr
688#define Long64ToUInt LongLongToUInt
689#define Long64ToUInt32 LongLongToUInt
690#define Long64ToUIntPtr LongLongToUIntPtr
691#define Long64ToLong LongLongToLong
692#define Long64ToLongPtr LongLongToLongPtr
693#define Long64ToULong LongLongToULong
694#define Long64ToULongPtr LongLongToULongPtr
695#define Long64ToDWord LongLongToULong
696#define Long64ToDWordPtr LongLongToULongPtr
697#define Long64ToULongLong LongLongToULongLong
698__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Long64ToPtrdiffT, LONG64, ptrdiff_t)
699__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Long64ToSizeT, LONG64, size_t)
700#define Long64ToSSIZET LongLongToLongPtr
701#define Long64ToSIZET LongLongToULongPtr
702#define Int64ToChar LongLongToChar
703#define Int64ToInt8 LongLongToInt8
704#define Int64ToUChar LongLongToUChar
705#define Int64ToUInt8 LongLongToUInt8
706#define Int64ToByte LongLongToUInt8
707#define Int64ToShort LongLongToShort
708#define Int64ToInt16 LongLongToShort
709#define Int64ToUShort LongLongToUShort
710#define Int64ToUInt16 LongLongToUShort
711#define Int64ToWord LongLongToUShort
712#define Int64ToInt32 LongLongToInt
713#define Int64ToUInt32 LongLongToUInt
714#define Int64ToDWordLong LongLongToULongLong
715#define Int64ToULong64 LongLongToULongLong
716#define Int64ToDWord64 LongLongToULongLong
717#define Int64ToUInt64 LongLongToULongLong
718#define Int64ToSIZET LongLongToULongPtr
719#define ULongLongToByte ULongLongToUInt8
720#define ULongLongToInt16 ULongLongToShort
721#define ULongLongToUInt16 ULongLongToUShort
722#define ULongLongToWord ULongLongToUShort
723#define ULongLongToInt32 ULongLongToInt
724#define ULongLongToUInt32 ULongLongToUInt
725#define ULongLongToLong64 ULongLongToLongLong
726#define ULongLongToSIZET ULongLongToULongPtr
727#define DWordLongToChar ULongLongToChar
728#define DWordLongToInt8 ULongLongToInt8
729#define DWordLongToUChar ULongLongToUChar
730#define DWordLongToUInt8 ULongLongToUInt8
731#define DWordLongToByte ULongLongToUInt8
732#define DWordLongToShort ULongLongToShort
733#define DWordLongToInt16 ULongLongToShort
734#define DWordLongToUShort ULongLongToUShort
735#define DWordLongToUInt16 ULongLongToUShort
736#define DWordLongToWord ULongLongToUShort
737#define DWordLongToInt ULongLongToInt
738#define DWordLongToInt32 ULongLongToInt
739#define DWordLongToIntPtr ULongLongToIntPtr
740#define DWordLongToUInt ULongLongToUInt
741#define DWordLongToUInt32 ULongLongToUInt
742#define DWordLongToUIntPtr ULongLongToUIntPtr
743#define DWordLongToLong ULongLongToLong
744#define DWordLongToLongPtr ULongLongToLongPtr
745#define DWordLongToULong ULongLongToULong
746#define DWordLongToULongPtr ULongLongToULongPtr
747#define DWordLongToDWord ULongLongToULong
748#define DWordLongToDWordPtr ULongLongToULongPtr
749#define DWordLongToLongLong ULongLongToLongLong
750#define DWordLongToLong64 ULongLongToLongLong
751#define DWordLongToInt64 ULongLongToLongLong
752__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordLongToPtrdiffT, DWORDLONG, ptrdiff_t)
753__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordLongToSizeT, DWORDLONG, size_t)
754#define DWordLongToSSIZET ULongLongToLongPtr
755#define DWordLongToSIZET ULongLongToULongPtr
756#define ULong64ToChar ULongLongToChar
757#define ULong64ToInt8 ULongLongToInt8
758#define ULong64ToUChar ULongLongToUChar
759#define ULong64ToUInt8 ULongLongToUInt8
760#define ULong64ToByte ULongLongToUInt8
761#define ULong64ToShort ULongLongToShort
762#define ULong64ToInt16 ULongLongToShort
763#define ULong64ToUShort ULongLongToUShort
764#define ULong64ToUInt16 ULongLongToUShort
765#define ULong64ToWord ULongLongToUShort
766#define ULong64ToInt ULongLongToInt
767#define ULong64ToInt32 ULongLongToInt
768#define ULong64ToIntPtr ULongLongToIntPtr
769#define ULong64ToUInt ULongLongToUInt
770#define ULong64ToUInt32 ULongLongToUInt
771#define ULong64ToUIntPtr ULongLongToUIntPtr
772#define ULong64ToLong ULongLongToLong
773#define ULong64ToLongPtr ULongLongToLongPtr
774#define ULong64ToULong ULongLongToULong
775#define ULong64ToULongPtr ULongLongToULongPtr
776#define ULong64ToDWord ULongLongToULong
777#define ULong64ToDWordPtr ULongLongToULongPtr
778#define ULong64ToLongLong ULongLongToLongLong
779#define ULong64ToLong64 ULongLongToLongLong
780#define ULong64ToInt64 ULongLongToLongLong
781__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULong64ToPtrdiffT, ULONG64, ptrdiff_t)
782__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULong64ToSizeT, ULONG64, size_t)
783#define ULong64ToSSIZET ULongLongToLongPtr
784#define ULong64ToSIZET ULongLongToULongPtr
785#define DWord64ToChar ULongLongToChar
786#define DWord64ToInt8 ULongLongToInt8
787#define DWord64ToUChar ULongLongToUChar
788#define DWord64ToUInt8 ULongLongToUInt8
789#define DWord64ToByte ULongLongToUInt8
790#define DWord64ToShort ULongLongToShort
791#define DWord64ToInt16 ULongLongToShort
792#define DWord64ToUShort ULongLongToUShort
793#define DWord64ToUInt16 ULongLongToUShort
794#define DWord64ToWord ULongLongToUShort
795#define DWord64ToInt ULongLongToInt
796#define DWord64ToInt32 ULongLongToInt
797#define DWord64ToIntPtr ULongLongToIntPtr
798#define DWord64ToUInt ULongLongToUInt
799#define DWord64ToUInt32 ULongLongToUInt
800#define DWord64ToUIntPtr ULongLongToUIntPtr
801#define DWord64ToLong ULongLongToLong
802#define DWord64ToLongPtr ULongLongToLongPtr
803#define DWord64ToULong ULongLongToULong
804#define DWord64ToULongPtr ULongLongToULongPtr
805#define DWord64ToDWord ULongLongToULong
806#define DWord64ToDWordPtr ULongLongToULongPtr
807#define DWord64ToLongLong ULongLongToLongLong
808#define DWord64ToLong64 ULongLongToLongLong
809#define DWord64ToInt64 ULongLongToLongLong
810__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWord64ToPtrdiffT, DWORD64, ptrdiff_t)
811__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWord64ToSizeT, DWORD64, size_t)
812#define DWord64ToSSIZET ULongLongToLongPtr
813#define DWord64ToSIZET ULongLongToULongPtr
814#define UInt64ToChar ULongLongToChar
815#define UInt64ToInt8 ULongLongToInt8
816#define UInt64ToUChar ULongLongToUChar
817#define UInt64ToUInt8 ULongLongToUInt8
818#define UInt64ToByte ULongLongToUInt8
819#define UInt64ToShort ULongLongToShort
820#define UInt64ToInt16 ULongLongToShort
821#define UInt64ToUShort ULongLongToUShort
822#define UInt64ToUInt16 ULongLongToUShort
823#define UInt64ToWord ULongLongToUShort
824#define UInt64ToInt ULongLongToInt
825#define UInt64ToInt32 ULongLongToInt
826#define UInt64ToIntPtr ULongLongToIntPtr
827#define UInt64ToUInt ULongLongToUInt
828#define UInt64ToUInt32 ULongLongToUInt
829#define UInt64ToUIntPtr ULongLongToUIntPtr
830#define UInt64ToLong ULongLongToLong
831#define UInt64ToLongPtr ULongLongToLongPtr
832#define UInt64ToULong ULongLongToULong
833#define UInt64ToULongPtr ULongLongToULongPtr
834#define UInt64ToDWord ULongLongToULong
835#define UInt64ToDWordPtr ULongLongToULongPtr
836#define UInt64ToLongLong ULongLongToLongLong
837#define UInt64ToLong64 ULongLongToLongLong
838#define UInt64ToInt64 ULongLongToLongLong
839__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt64ToPtrdiffT, UINT64, ptrdiff_t)
840__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt64ToSizeT, UINT64, size_t)
841#define UInt64ToSSIZET ULongLongToLongPtr
842#define UInt64ToSIZET ULongLongToULongPtr
843__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_CHAR(PtrdiffTToChar, ptrdiff_t, CHAR)
844__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(PtrdiffTToUChar, ptrdiff_t, UCHAR)
845__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt8, ptrdiff_t, INT8)
846__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt8, ptrdiff_t, UINT8)
847#define PtrdiffTToByte PtrdiffTToUInt8
848__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt16, ptrdiff_t, INT16)
849#define PtrdiffTToShort PtrdiffTToInt16
850__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt16, ptrdiff_t, UINT16)
851#define PtrdiffTToUShort PtrdiffTToUInt16
852#define PtrdiffTToWord PtrdiffTToUInt16
853__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt32, ptrdiff_t, INT32)
854__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt32, ptrdiff_t, UINT32)
855__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToLongPtr, ptrdiff_t, LONG_PTR)
856__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULongLong, ptrdiff_t, ULONGLONG)
857__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWordLong, ptrdiff_t, DWORDLONG)
858__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULong64, ptrdiff_t, ULONG64)
859__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWord64, ptrdiff_t, DWORD64)
860__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt64, ptrdiff_t, UINT64)
861__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToSIZET, ptrdiff_t, SIZE_T)
862__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_CHAR(SizeTToChar, size_t, CHAR)
863__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(SizeTToUChar, size_t, UCHAR)
864__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt8, size_t, INT8)
865__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt8, size_t, UINT8)
866#define SizeTToByte SizeTToUInt8
867__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt16, size_t, INT16)
868#define SizeTToShort SizeTToInt16
869__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt16, size_t, UINT16)
870#define SizeTToUShort SizeTToUInt16
871#define SizeTToWord SizeTToUInt16
872__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt32, size_t, INT32)
873__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLongLong, size_t, LONGLONG)
874#define SizeTToLong64 SizeTToLongLong
875#define SSIZETToInt8 LongPtrToInt8
876#define SSIZETToUChar LongPtrToUChar
877#define SSIZETToChar LongPtrToChar
878#define SSIZETToUInt8 LongPtrToUInt8
879#define SSIZETToByte LongPtrToUInt8
880#define SSIZETToShort LongPtrToShort
881#define SSIZETToInt16 LongPtrToShort
882#define SSIZETToUShort LongPtrToUShort
883#define SSIZETToUInt16 LongPtrToUShort
884#define SSIZETToWord LongPtrToUShort
885#define SSIZETToInt32 LongPtrToInt
886#define SSIZETToUInt32 LongPtrToUInt
887#define SSIZETToULongLong LongPtrToULongLong
888#define SSIZETToDWordLong LongPtrToULongLong
889#define SSIZETToULong64 LongPtrToULongLong
890#define SSIZETToDWord64 LongPtrToULongLong
891#define SSIZETToUInt64 LongPtrToULongLong
892#define SSIZETToSIZET LongPtrToULongPtr
893#define SIZETToInt8 ULongPtrToInt8
894#define SIZETToUChar ULongPtrToUChar
895#define SIZETToChar ULongPtrToChar
896#define SIZETToUInt8 ULongPtrToUInt8
897#define SIZETToByte ULongPtrToUInt8
898#define SIZETToShort ULongPtrToShort
899#define SIZETToInt16 ULongPtrToShort
900#define SIZETToUShort ULongPtrToUShort
901#define SIZETToUInt16 ULongPtrToUShort
902#define SIZETToWord ULongPtrToUShort
903#define SIZETToInt ULongPtrToInt
904#define SIZETToInt32 ULongPtrToInt
905#define SIZETToIntPtr ULongPtrToIntPtr
906#define SIZETToUInt ULongPtrToUInt
907#define SIZETToUInt32 ULongPtrToUInt
908#define SIZETToUIntPtr ULongPtrToUIntPtr
909#define SIZETToLong ULongPtrToLong
910#define SIZETToLongPtr ULongPtrToLongPtr
911#define SIZETToULong ULongPtrToULong
912#define SIZETToDWord ULongPtrToULong
913#define SIZETToLongLong ULongPtrToLongLong
914#define SIZETToLong64 ULongPtrToLongLong
915#define SIZETToInt64 ULongPtrToLongLong
916__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SIZETToPtrdiffT, SIZE_T, ptrdiff_t)
917#define SIZETToSSIZET ULongPtrToLongPtr
918
919#define UInt16Add UShortAdd
920#define UInt32Add UIntAdd
921#define DWordLongAdd ULongLongAdd
922#define ULong64Add ULongLongAdd
923#define DWord64Add ULongLongAdd
924#define UInt64Add ULongLongAdd
925#define UInt16Sub UShortSub
926#define UInt32Sub UIntSub
927#define DWordLongSub ULongLongSub
928#define ULong64Sub ULongLongSub
929#define DWord64Sub ULongLongSub
930#define UInt64Sub ULongLongSub
931#define UInt16Mult UShortMult
932#define UInt32Mult UIntMult
933#define DWordLongMult ULongLongMult
934#define ULong64Mult ULongLongMult
935#define DWord64Mult ULongLongMult
936#define UInt64Mult ULongLongMult
937#define Int16Add ShortAdd
938#define Int32Add IntAdd
939#define Long32Add IntAdd
940#define Long64Add LongLongAdd
941#define Int64Add LongLongAdd
942#define Int16Sub ShortSub
943#define Int32Sub IntSub
944#define Long32Sub IntSub
945#define Long64Sub LongLongSub
946#define Int64Sub LongLongSub
947#define Int16Mult ShortMult
948#define Int32Mult IntMult
949#define Long32Mult IntMult
950#define Long64Mult LongLongMult
951#define Int64Mult LongLongMult
952
953#endif /* __MINGW_INTSAFE_WORKS */
954#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
955#endif /* _INTSAFE_H_INCLUDED_ */