I tested this in the 64-bit MSYS environment from MSYS2 using my automated test suite at https://github.com/DavidEGrayson/intsafe which checks the type of each function by assigning a function pointer to point at it. I have not tested 32-bit Cygwin.
I wasn't aware until recently that we wanted our headers to work in Cygwin/MSYS. >From 0fbfc1209762829a0d409f7a5d3c85aa46b2d3dd Mon Sep 17 00:00:00 2001 From: David Grayson <[email protected]> Date: Mon, 23 Feb 2026 10:57:13 -0800 Subject: [PATCH] header/intsafe: Fix Cygwin compatibility. In 64-bit Cygwin, both "long" and "long long" are both 64-bit types, so some 64-bit types that we assumed were the same are actually different. - size_t (unsigned long) != UINT_PTR (unsigned long long) - ptr_diff_t (long) != INT_PTR (long long) --- mingw-w64-headers/include/intsafe.h | 100 ++++++++++++++-------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/mingw-w64-headers/include/intsafe.h b/mingw-w64-headers/include/intsafe.h index bad9f38fe..17f3bda1e 100644 --- a/mingw-w64-headers/include/intsafe.h +++ b/mingw-w64-headers/include/intsafe.h @@ -424,7 +424,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Int8ToULong64 Int8ToULongLong #define Int8ToDWord64 Int8ToULongLong #define Int8ToUInt64 Int8ToULongLong -#define Int8ToSizeT Int8ToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToSizeT, INT8, size_t) #define Int8ToSIZET Int8ToULongPtr #define ShortToUInt16 ShortToUShort #define ShortToUInt32 ShortToUInt @@ -433,7 +433,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define ShortToULong64 ShortToULongLong #define ShortToDWord64 ShortToULongLong #define ShortToUInt64 ShortToULongLong -#define ShortToSizeT ShortToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToSizeT, SHORT, size_t) #define ShortToSIZET ShortToULongPtr #define Int16ToChar ShortToChar #define Int16ToInt8 ShortToInt8 @@ -455,7 +455,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Int16ToULong64 ShortToULongLong #define Int16ToDWord64 ShortToULongLong #define Int16ToUInt64 ShortToULongLong -#define Int16ToSizeT ShortToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int16ToSizeT, INT16, size_t) #define Int16ToSIZET ShortToULongPtr #define UShortToInt16 UShortToShort #define UInt16ToChar UShortToChar @@ -497,7 +497,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Int32ToULong64 IntToULongLong #define Int32ToDWord64 IntToULongLong #define Int32ToUInt64 IntToULongLong -#define Int32ToSizeT IntToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int32ToSizeT, INT32, size_t) #define Int32ToSIZET IntToULongPtr #define IntPtrToByte IntPtrToUInt8 #define IntPtrToInt16 IntPtrToShort @@ -535,7 +535,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define UIntPtrToInt32 UIntPtrToInt #define UIntPtrToUInt32 UIntPtrToUInt #define UIntPtrToLong64 UIntPtrToLongLong -#define UIntPtrToPtrdiffT UIntPtrToIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToPtrdiffT, UINT_PTR, ptrdiff_t) #define LongToInt16 LongToShort #define LongToUInt16 LongToUShort #define LongToInt32 LongToInt @@ -601,8 +601,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define LongLongToULong64 LongLongToULongLong #define LongLongToDWord64 LongLongToULongLong #define LongLongToUInt64 LongLongToULongLong -#define LongLongToPtrdiffT LongLongToIntPtr -#define LongLongToSizeT LongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToPtrdiffT, LONGLONG, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToSizeT, LONGLONG, size_t) #define LongLongToSSIZET LongLongToLongPtr #define LongLongToSIZET LongLongToULongPtr #define Long64ToChar LongLongToChar @@ -628,8 +628,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Long64ToDWord LongLongToULong #define Long64ToDWordPtr LongLongToULongPtr #define Long64ToULongLong LongLongToULongLong -#define Long64ToPtrdiffT LongLongToIntPtr -#define Long64ToSizeT LongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Long64ToPtrdiffT, LONG64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Long64ToSizeT, LONG64, size_t) #define Long64ToSSIZET LongLongToLongPtr #define Long64ToSIZET LongLongToULongPtr #define Int64ToChar LongLongToChar @@ -682,8 +682,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define DWordLongToLongLong ULongLongToLongLong #define DWordLongToLong64 ULongLongToLongLong #define DWordLongToInt64 ULongLongToLongLong -#define DWordLongToPtrdiffT ULongLongToIntPtr -#define DWordLongToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordLongToPtrdiffT, DWORDLONG, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordLongToSizeT, DWORDLONG, size_t) #define DWordLongToSSIZET ULongLongToLongPtr #define DWordLongToSIZET ULongLongToULongPtr #define ULong64ToChar ULongLongToChar @@ -711,8 +711,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define ULong64ToLongLong ULongLongToLongLong #define ULong64ToLong64 ULongLongToLongLong #define ULong64ToInt64 ULongLongToLongLong -#define ULong64ToPtrdiffT ULongLongToIntPtr -#define ULong64ToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULong64ToPtrdiffT, ULONG64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULong64ToSizeT, ULONG64, size_t) #define ULong64ToSSIZET ULongLongToLongPtr #define ULong64ToSIZET ULongLongToULongPtr #define DWord64ToChar ULongLongToChar @@ -740,8 +740,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define DWord64ToLongLong ULongLongToLongLong #define DWord64ToLong64 ULongLongToLongLong #define DWord64ToInt64 ULongLongToLongLong -#define DWord64ToPtrdiffT ULongLongToIntPtr -#define DWord64ToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWord64ToPtrdiffT, DWORD64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWord64ToSizeT, DWORD64, size_t) #define DWord64ToSSIZET ULongLongToLongPtr #define DWord64ToSIZET ULongLongToULongPtr #define UInt64ToChar ULongLongToChar @@ -769,42 +769,42 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define UInt64ToLongLong ULongLongToLongLong #define UInt64ToLong64 ULongLongToLongLong #define UInt64ToInt64 ULongLongToLongLong -#define UInt64ToPtrdiffT ULongLongToIntPtr -#define UInt64ToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt64ToPtrdiffT, UINT64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt64ToSizeT, UINT64, size_t) #define UInt64ToSSIZET ULongLongToLongPtr #define UInt64ToSIZET ULongLongToULongPtr -#define PtrdiffTToChar IntPtrToChar -#define PtrdiffTToInt8 IntPtrToInt8 -#define PtrdiffTToUChar IntPtrToUChar -#define PtrdiffTToUInt8 IntPtrToUInt8 -#define PtrdiffTToByte IntPtrToUInt8 -#define PtrdiffTToShort IntPtrToShort -#define PtrdiffTToInt16 IntPtrToShort -#define PtrdiffTToUShort IntPtrToUShort -#define PtrdiffTToUInt16 IntPtrToUShort -#define PtrdiffTToWord IntPtrToUShort -#define PtrdiffTToInt32 IntPtrToInt -#define PtrdiffTToUInt32 IntPtrToUInt -#define PtrdiffTToLongPtr IntPtrToLongPtr -#define PtrdiffTToULongLong IntPtrToULongLong -#define PtrdiffTToDWordLong IntPtrToULongLong -#define PtrdiffTToULong64 IntPtrToULongLong -#define PtrdiffTToDWord64 IntPtrToULongLong -#define PtrdiffTToUInt64 IntPtrToULongLong -#define PtrdiffTToSIZET IntPtrToULongPtr -#define SizeTToInt8 UIntPtrToInt8 -#define SizeTToUChar UIntPtrToUChar -#define SizeTToChar UIntPtrToChar -#define SizeTToUInt8 UIntPtrToUInt8 -#define SizeTToByte UIntPtrToUInt8 -#define SizeTToShort UIntPtrToShort -#define SizeTToInt16 UIntPtrToShort -#define SizeTToUShort UIntPtrToUShort -#define SizeTToUInt16 UIntPtrToUShort -#define SizeTToWord UIntPtrToUShort -#define SizeTToInt32 UIntPtrToInt -#define SizeTToLongLong UIntPtrToLongLong -#define SizeTToLong64 UIntPtrToLongLong +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_CHAR(PtrdiffTToChar, ptrdiff_t, CHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(PtrdiffTToUChar, ptrdiff_t, UCHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt8, ptrdiff_t, INT8) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt8, ptrdiff_t, UINT8) +#define PtrdiffTToByte PtrdiffTToUInt8 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt16, ptrdiff_t, INT16) +#define PtrdiffTToShort PtrdiffTToInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt16, ptrdiff_t, UINT16) +#define PtrdiffTToUShort PtrdiffTToUInt16 +#define PtrdiffTToWord PtrdiffTToUInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt32, ptrdiff_t, INT32) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt32, ptrdiff_t, UINT32) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToLongPtr, ptrdiff_t, LONG_PTR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULongLong, ptrdiff_t, ULONGLONG) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWordLong, ptrdiff_t, DWORDLONG) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULong64, ptrdiff_t, ULONG64) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWord64, ptrdiff_t, DWORD64) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt64, ptrdiff_t, UINT64) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToSIZET, ptrdiff_t, SIZE_T) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_CHAR(SizeTToChar, size_t, CHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(SizeTToUChar, size_t, UCHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt8, size_t, INT8) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt8, size_t, UINT8) +#define SizeTToByte SizeTToUInt8 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt16, size_t, INT16) +#define SizeTToShort SizeTToInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt16, size_t, UINT16) +#define SizeTToUShort SizeTToUInt16 +#define SizeTToWord SizeTToUInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt32, size_t, INT32) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLongLong, size_t, LONGLONG) +#define SizeTToLong64 SizeTToLongLong #define SSIZETToInt8 LongPtrToInt8 #define SSIZETToUChar LongPtrToUChar #define SSIZETToChar LongPtrToChar @@ -846,7 +846,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define SIZETToLongLong ULongPtrToLongLong #define SIZETToLong64 ULongPtrToLongLong #define SIZETToInt64 ULongPtrToLongLong -#define SIZETToPtrdiffT ULongPtrToIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SIZETToPtrdiffT, SIZE_T, ptrdiff_t) #define SIZETToSSIZET ULongPtrToLongPtr #define UInt16Add UShortAdd -- 2.52.0
From 0fbfc1209762829a0d409f7a5d3c85aa46b2d3dd Mon Sep 17 00:00:00 2001 From: David Grayson <[email protected]> Date: Mon, 23 Feb 2026 10:57:13 -0800 Subject: [PATCH] header/intsafe: Fix Cygwin compatibility. In 64-bit Cygwin, both "long" and "long long" are both 64-bit types, so some 64-bit types that we assumed were the same are actually different. - size_t (unsigned long) != UINT_PTR (unsigned long long) - ptr_diff_t (long) != INT_PTR (long long) --- mingw-w64-headers/include/intsafe.h | 100 ++++++++++++++-------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/mingw-w64-headers/include/intsafe.h b/mingw-w64-headers/include/intsafe.h index bad9f38fe..17f3bda1e 100644 --- a/mingw-w64-headers/include/intsafe.h +++ b/mingw-w64-headers/include/intsafe.h @@ -424,7 +424,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Int8ToULong64 Int8ToULongLong #define Int8ToDWord64 Int8ToULongLong #define Int8ToUInt64 Int8ToULongLong -#define Int8ToSizeT Int8ToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToSizeT, INT8, size_t) #define Int8ToSIZET Int8ToULongPtr #define ShortToUInt16 ShortToUShort #define ShortToUInt32 ShortToUInt @@ -433,7 +433,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define ShortToULong64 ShortToULongLong #define ShortToDWord64 ShortToULongLong #define ShortToUInt64 ShortToULongLong -#define ShortToSizeT ShortToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToSizeT, SHORT, size_t) #define ShortToSIZET ShortToULongPtr #define Int16ToChar ShortToChar #define Int16ToInt8 ShortToInt8 @@ -455,7 +455,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Int16ToULong64 ShortToULongLong #define Int16ToDWord64 ShortToULongLong #define Int16ToUInt64 ShortToULongLong -#define Int16ToSizeT ShortToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int16ToSizeT, INT16, size_t) #define Int16ToSIZET ShortToULongPtr #define UShortToInt16 UShortToShort #define UInt16ToChar UShortToChar @@ -497,7 +497,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Int32ToULong64 IntToULongLong #define Int32ToDWord64 IntToULongLong #define Int32ToUInt64 IntToULongLong -#define Int32ToSizeT IntToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int32ToSizeT, INT32, size_t) #define Int32ToSIZET IntToULongPtr #define IntPtrToByte IntPtrToUInt8 #define IntPtrToInt16 IntPtrToShort @@ -535,7 +535,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define UIntPtrToInt32 UIntPtrToInt #define UIntPtrToUInt32 UIntPtrToUInt #define UIntPtrToLong64 UIntPtrToLongLong -#define UIntPtrToPtrdiffT UIntPtrToIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToPtrdiffT, UINT_PTR, ptrdiff_t) #define LongToInt16 LongToShort #define LongToUInt16 LongToUShort #define LongToInt32 LongToInt @@ -601,8 +601,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define LongLongToULong64 LongLongToULongLong #define LongLongToDWord64 LongLongToULongLong #define LongLongToUInt64 LongLongToULongLong -#define LongLongToPtrdiffT LongLongToIntPtr -#define LongLongToSizeT LongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToPtrdiffT, LONGLONG, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToSizeT, LONGLONG, size_t) #define LongLongToSSIZET LongLongToLongPtr #define LongLongToSIZET LongLongToULongPtr #define Long64ToChar LongLongToChar @@ -628,8 +628,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define Long64ToDWord LongLongToULong #define Long64ToDWordPtr LongLongToULongPtr #define Long64ToULongLong LongLongToULongLong -#define Long64ToPtrdiffT LongLongToIntPtr -#define Long64ToSizeT LongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Long64ToPtrdiffT, LONG64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Long64ToSizeT, LONG64, size_t) #define Long64ToSSIZET LongLongToLongPtr #define Long64ToSIZET LongLongToULongPtr #define Int64ToChar LongLongToChar @@ -682,8 +682,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define DWordLongToLongLong ULongLongToLongLong #define DWordLongToLong64 ULongLongToLongLong #define DWordLongToInt64 ULongLongToLongLong -#define DWordLongToPtrdiffT ULongLongToIntPtr -#define DWordLongToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordLongToPtrdiffT, DWORDLONG, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordLongToSizeT, DWORDLONG, size_t) #define DWordLongToSSIZET ULongLongToLongPtr #define DWordLongToSIZET ULongLongToULongPtr #define ULong64ToChar ULongLongToChar @@ -711,8 +711,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define ULong64ToLongLong ULongLongToLongLong #define ULong64ToLong64 ULongLongToLongLong #define ULong64ToInt64 ULongLongToLongLong -#define ULong64ToPtrdiffT ULongLongToIntPtr -#define ULong64ToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULong64ToPtrdiffT, ULONG64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULong64ToSizeT, ULONG64, size_t) #define ULong64ToSSIZET ULongLongToLongPtr #define ULong64ToSIZET ULongLongToULongPtr #define DWord64ToChar ULongLongToChar @@ -740,8 +740,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define DWord64ToLongLong ULongLongToLongLong #define DWord64ToLong64 ULongLongToLongLong #define DWord64ToInt64 ULongLongToLongLong -#define DWord64ToPtrdiffT ULongLongToIntPtr -#define DWord64ToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWord64ToPtrdiffT, DWORD64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWord64ToSizeT, DWORD64, size_t) #define DWord64ToSSIZET ULongLongToLongPtr #define DWord64ToSIZET ULongLongToULongPtr #define UInt64ToChar ULongLongToChar @@ -769,42 +769,42 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define UInt64ToLongLong ULongLongToLongLong #define UInt64ToLong64 ULongLongToLongLong #define UInt64ToInt64 ULongLongToLongLong -#define UInt64ToPtrdiffT ULongLongToIntPtr -#define UInt64ToSizeT ULongLongToUIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt64ToPtrdiffT, UINT64, ptrdiff_t) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt64ToSizeT, UINT64, size_t) #define UInt64ToSSIZET ULongLongToLongPtr #define UInt64ToSIZET ULongLongToULongPtr -#define PtrdiffTToChar IntPtrToChar -#define PtrdiffTToInt8 IntPtrToInt8 -#define PtrdiffTToUChar IntPtrToUChar -#define PtrdiffTToUInt8 IntPtrToUInt8 -#define PtrdiffTToByte IntPtrToUInt8 -#define PtrdiffTToShort IntPtrToShort -#define PtrdiffTToInt16 IntPtrToShort -#define PtrdiffTToUShort IntPtrToUShort -#define PtrdiffTToUInt16 IntPtrToUShort -#define PtrdiffTToWord IntPtrToUShort -#define PtrdiffTToInt32 IntPtrToInt -#define PtrdiffTToUInt32 IntPtrToUInt -#define PtrdiffTToLongPtr IntPtrToLongPtr -#define PtrdiffTToULongLong IntPtrToULongLong -#define PtrdiffTToDWordLong IntPtrToULongLong -#define PtrdiffTToULong64 IntPtrToULongLong -#define PtrdiffTToDWord64 IntPtrToULongLong -#define PtrdiffTToUInt64 IntPtrToULongLong -#define PtrdiffTToSIZET IntPtrToULongPtr -#define SizeTToInt8 UIntPtrToInt8 -#define SizeTToUChar UIntPtrToUChar -#define SizeTToChar UIntPtrToChar -#define SizeTToUInt8 UIntPtrToUInt8 -#define SizeTToByte UIntPtrToUInt8 -#define SizeTToShort UIntPtrToShort -#define SizeTToInt16 UIntPtrToShort -#define SizeTToUShort UIntPtrToUShort -#define SizeTToUInt16 UIntPtrToUShort -#define SizeTToWord UIntPtrToUShort -#define SizeTToInt32 UIntPtrToInt -#define SizeTToLongLong UIntPtrToLongLong -#define SizeTToLong64 UIntPtrToLongLong +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_CHAR(PtrdiffTToChar, ptrdiff_t, CHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(PtrdiffTToUChar, ptrdiff_t, UCHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt8, ptrdiff_t, INT8) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt8, ptrdiff_t, UINT8) +#define PtrdiffTToByte PtrdiffTToUInt8 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt16, ptrdiff_t, INT16) +#define PtrdiffTToShort PtrdiffTToInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt16, ptrdiff_t, UINT16) +#define PtrdiffTToUShort PtrdiffTToUInt16 +#define PtrdiffTToWord PtrdiffTToUInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt32, ptrdiff_t, INT32) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt32, ptrdiff_t, UINT32) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToLongPtr, ptrdiff_t, LONG_PTR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULongLong, ptrdiff_t, ULONGLONG) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWordLong, ptrdiff_t, DWORDLONG) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULong64, ptrdiff_t, ULONG64) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWord64, ptrdiff_t, DWORD64) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt64, ptrdiff_t, UINT64) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToSIZET, ptrdiff_t, SIZE_T) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_CHAR(SizeTToChar, size_t, CHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(SizeTToUChar, size_t, UCHAR) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt8, size_t, INT8) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt8, size_t, UINT8) +#define SizeTToByte SizeTToUInt8 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt16, size_t, INT16) +#define SizeTToShort SizeTToInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt16, size_t, UINT16) +#define SizeTToUShort SizeTToUInt16 +#define SizeTToWord SizeTToUInt16 +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt32, size_t, INT32) +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLongLong, size_t, LONGLONG) +#define SizeTToLong64 SizeTToLongLong #define SSIZETToInt8 LongPtrToInt8 #define SSIZETToUChar LongPtrToUChar #define SSIZETToChar LongPtrToChar @@ -846,7 +846,7 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) #define SIZETToLongLong ULongPtrToLongLong #define SIZETToLong64 ULongPtrToLongLong #define SIZETToInt64 ULongPtrToLongLong -#define SIZETToPtrdiffT ULongPtrToIntPtr +__MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SIZETToPtrdiffT, SIZE_T, ptrdiff_t) #define SIZETToSSIZET ULongPtrToLongPtr #define UInt16Add UShortAdd -- 2.52.0
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
