| 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 |
| 105 | on chars. This avoids the risk of linking to the wrong function when |
| 106 | different translation units with different types of chars are linked |
| 107 | together, 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_ */ |