Don't assume that pointer-sized types are long long.
Fixes: 0cf06d5cb6968ad71d36a193eeb04f3266bb3aaa Signed-off-by: Jacek Caban <ja...@codeweavers.com> --- mingw-w64-headers/include/intsafe.h | 160 +++++++++++++++------------- 1 file changed, 85 insertions(+), 75 deletions(-)
diff --git a/mingw-w64-headers/include/intsafe.h b/mingw-w64-headers/include/intsafe.h index d05ecf864..2a591d3d3 100644 --- a/mingw-w64-headers/include/intsafe.h +++ b/mingw-w64-headers/include/intsafe.h @@ -358,16 +358,41 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongAdd, ULONG, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordAdd, DWORD, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongAdd, LONG, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntAdd, INT, add) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrAdd, UINT_PTR, add) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongAdd, ULONGLONG, add) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongAdd, LONGLONG, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTAdd, size_t, add) +#ifdef _WIN64 +#define UIntPtrAdd ULongLongAdd +#define ULongPtrAdd ULongLongAdd +#define DWordPtrAdd ULongLongAdd +#define IntPtrAdd LongLongAdd +#define PtrdiffTAdd LongLongAdd +#define LongPtrAdd LongLongAdd +#define SSIZETAdd LongLongAdd +#define SIZETAdd ULongLongAdd +#else +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrAdd, UINT_PTR, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrAdd, ULONG_PTR, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrAdd, DWORD_PTR, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrAdd, INT_PTR, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTAdd, ptrdiff_t, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrAdd, LONG_PTR, add) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETAdd, SIZE_T, add) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETAdd, SSIZE_T, add) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongAdd, ULONGLONG, add) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongAdd, LONGLONG, add) +#endif +#define UInt16Add UShortAdd +#define WordAdd UShortAdd +#define UInt32Add UIntAdd +#define DWordAdd ULongAdd +#define ULong64Add ULongLongAdd +#define DWord64Add ULongLongAdd +#define UInt64Add ULongLongAdd +#define Int16Add ShortAdd +#define Int32Add IntAdd +#define Long32Add IntAdd +#define Long64Add LongLongAdd +#define Int64Add LongLongAdd +#define DWordLongAdd ULongLongAdd __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Sub, UINT8, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Sub, INT8, sub) @@ -379,16 +404,41 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongSub, ULONG, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordSub, DWORD, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongSub, LONG, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntSub, INT, sub) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrSub, UINT_PTR, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTSub, size_t, sub) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrSub, ULONG_PTR, sub) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrSub, DWORD_PTR, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrSub, INT_PTR, sub) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTSub, ptrdiff_t, sub) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrSub, LONG_PTR, sub) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETSub, SSIZE_T, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongSub, ULONGLONG, sub) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongSub, LONGLONG, sub) +#ifdef _WIN64 +#define UIntPtrSub ULongLongSub +#define ULongPtrSub ULongLongSub +#define DWordPtrSub ULongLongSub +#define SIZETSub ULongLongSub +#define SSIZETSub LongLongSub +#define LongPtrSub LongLongSub +#define PtrdiffTSub LongLongSub +#else +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrSub, UINT_PTR, sub) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrSub, ULONG_PTR, sub) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrSub, DWORD_PTR, sub) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETSub, SIZE_T, sub) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETSub, SSIZE_T, sub) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrSub, LONG_PTR, sub) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTSub, ptrdiff_t, sub) +#endif +#define UInt16Sub UShortSub +#define WordSub UShortSub +#define UInt32Sub UIntSub +#define DWordSub ULongSub +#define DWordLongSub ULongLongSub +#define ULong64Sub ULongLongSub +#define DWord64Sub ULongLongSub +#define UInt64Sub ULongLongSub +#define Int16Sub ShortSub +#define Int32Sub IntSub +#define IntPtrSub LongLongSub +#define Long32Sub IntSub +#define Long64Sub LongLongSub +#define Int64Sub LongLongSub __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Mult, UINT8, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Mult, INT8, mul) @@ -400,6 +450,18 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongMult, ULONG, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordMult, DWORD, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongMult, LONG, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntMult, INT, mul) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul) +__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) +#ifdef _WIN64 +#define UIntPtrMult ULongLongMult +#define SizeTMult ULongLongMult +#define ULongPtrMult ULongLongMult +#define DWordPtrMult ULongLongMult +#define IntPtrMult LongLongMult +#define PtrdiffTMult LongLongMult +#define LongPtrMult LongLongMult +#define SSIZETMult LongLongMult +#else __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrMult, UINT_PTR, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTMult, size_t, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrMult, ULONG_PTR, mul) @@ -408,8 +470,20 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrMult, INT_PTR, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTMult, ptrdiff_t, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrMult, LONG_PTR, mul) __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETMult, SSIZE_T, mul) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul) -__MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) +#endif +#define UInt16Mult UShortMult +#define WordMult UShortMult +#define UInt32Mult UIntMult +#define DWordMult ULongMult +#define DWordLongMult ULongLongMult +#define ULong64Mult ULongLongMult +#define DWord64Mult ULongLongMult +#define UInt64Mult ULongLongMult +#define Int16Mult ShortMult +#define Int32Mult IntMult +#define Long32Mult IntMult +#define Long64Mult LongLongMult +#define Int64Mult LongLongMult #define Int8ToByte Int8ToUInt8 #define Int8ToUInt16 Int8ToUShort @@ -996,70 +1070,6 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define SIZETToInt64 ULongPtrToLongLong #define SIZETToPtrdiffT ULongPtrToIntPtr #define SIZETToSSIZET ULongPtrToLongPtr -#define UInt16Add UShortAdd -#define WordAdd UShortAdd -#define UInt32Add UIntAdd -#define UIntPtrAdd ULongLongAdd -#define ULongPtrAdd ULongLongAdd -#define DWordAdd ULongAdd -#define DWordPtrAdd ULongLongAdd -#define SIZETAdd ULongLongAdd -#define DWordLongAdd ULongLongAdd -#define ULong64Add ULongLongAdd -#define DWord64Add ULongLongAdd -#define UInt64Add ULongLongAdd -#define UInt16Sub UShortSub -#define WordSub UShortSub -#define UInt32Sub UIntSub -#define UIntPtrSub ULongLongSub -#define ULongPtrSub ULongLongSub -#define DWordSub ULongSub -#define DWordPtrSub ULongLongSub -#define SIZETSub ULongLongSub -#define DWordLongSub ULongLongSub -#define ULong64Sub ULongLongSub -#define DWord64Sub ULongLongSub -#define UInt64Sub ULongLongSub -#define UInt16Mult UShortMult -#define WordMult UShortMult -#define UInt32Mult UIntMult -#define UIntPtrMult ULongLongMult -#define ULongPtrMult ULongLongMult -#define DWordMult ULongMult -#define DWordPtrMult ULongLongMult -#define SizeTMult ULongLongMult -#define SIZETMult ULongLongMult -#define DWordLongMult ULongLongMult -#define ULong64Mult ULongLongMult -#define DWord64Mult ULongLongMult -#define UInt64Mult ULongLongMult -#define Int16Add ShortAdd -#define Int32Add IntAdd -#define IntPtrAdd LongLongAdd -#define Long32Add IntAdd -#define LongPtrAdd LongLongAdd -#define Long64Add LongLongAdd -#define Int64Add LongLongAdd -#define PtrdiffTAdd LongLongAdd -#define SSIZETAdd LongLongAdd -#define Int16Sub ShortSub -#define Int32Sub IntSub -#define IntPtrSub LongLongSub -#define Long32Sub IntSub -#define LongPtrSub LongLongSub -#define Long64Sub LongLongSub -#define Int64Sub LongLongSub -#define PtrdiffTSub LongLongSub -#define SSIZETSub LongLongSub -#define Int16Mult ShortMult -#define Int32Mult IntMult -#define IntPtrMult LongLongMult -#define Long32Mult IntMult -#define LongPtrMult LongLongMult -#define Long64Mult LongLongMult -#define Int64Mult LongLongMult -#define PtrdiffTMult LongLongMult -#define SSIZETMult LongLongMult #endif /* __GNUC__ >= 5 */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public