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

Reply via email to