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

Reply via email to