Hello,

Attached are patches which change the base types of `u?int_fast16_t` to `unsigned? int`, to match how these are declared in Microsoft UCRT headers.

These changes are small but are technically an ABI break. A consequent change may be needed in Clang. Your perspective will be appreciated.



From f8aef67634de7172cdb772f575f43d7d6d6e6d92 Mon Sep 17 00:00:00 2001
From: LIU Hao <[email protected]>
Date: Sat, 13 Jun 2026 20:38:33 +0800
Subject: [PATCH] gcc/mingw: Change `u?int_fast16_t` to match Microsoft
 declarations

gcc/ChangeLog:

        * config/mingw/mingw-stdint.h (INT_FAST16_TYPE): Change base type to 
`int`.
        (UINT_FAST16_TYPE): Change base type to `unsigned int`.

Signed-off-by: LIU Hao <[email protected]>
---
 gcc/config/mingw/mingw-stdint.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/mingw/mingw-stdint.h b/gcc/config/mingw/mingw-stdint.h
index 4c10ae6315a5..2309192c268f 100644
--- a/gcc/config/mingw/mingw-stdint.h
+++ b/gcc/config/mingw/mingw-stdint.h
@@ -38,11 +38,11 @@ along with GCC; see the file COPYING3.  If not see
 #define UINT_LEAST64_TYPE "long long unsigned int"

 #define INT_FAST8_TYPE "signed char"
-#define INT_FAST16_TYPE "short int"
+#define INT_FAST16_TYPE "int"
 #define INT_FAST32_TYPE "int"
 #define INT_FAST64_TYPE "long long int"
 #define UINT_FAST8_TYPE "unsigned char"
-#define UINT_FAST16_TYPE "short unsigned int"
+#define UINT_FAST16_TYPE "unsigned int"
 #define UINT_FAST32_TYPE "unsigned int"
 #define UINT_FAST64_TYPE "long long unsigned int"

--
2.54.0


From f3966cabb7e2ec029fc6801aa40fbd7dff4cabae Mon Sep 17 00:00:00 2001
From: LIU Hao <[email protected]>
Date: Sat, 13 Jun 2026 20:37:35 +0800
Subject: [PATCH] headers/stdint: Change `u?int_fast16_t` to match Microsoft
 declarations

Signed-off-by: LIU Hao <[email protected]>
---
 mingw-w64-headers/crt/stdint.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-headers/crt/stdint.h b/mingw-w64-headers/crt/stdint.h
index 3372f7530..b18067568 100644
--- a/mingw-w64-headers/crt/stdint.h
+++ b/mingw-w64-headers/crt/stdint.h
@@ -57,8 +57,8 @@ __MINGW_EXTENSION typedef unsigned long long   uint_least64_t;
  */
 typedef signed char int_fast8_t;
 typedef unsigned char uint_fast8_t;
-typedef short  int_fast16_t;
-typedef unsigned short  uint_fast16_t;
+typedef int  int_fast16_t;
+typedef unsigned int  uint_fast16_t;
 typedef int  int_fast32_t;
 typedef unsigned  int  uint_fast32_t;
 __MINGW_EXTENSION typedef long long  int_fast64_t;
--
2.54.0


From f8aef67634de7172cdb772f575f43d7d6d6e6d92 Mon Sep 17 00:00:00 2001
From: LIU Hao <[email protected]>
Date: Sat, 13 Jun 2026 20:38:33 +0800
Subject: [PATCH] gcc/mingw: Change `u?int_fast16_t` to match Microsoft
 declarations

gcc/ChangeLog:

        * config/mingw/mingw-stdint.h (INT_FAST16_TYPE): Change base type to 
`int`.
        (UINT_FAST16_TYPE): Change base type to `unsigned int`.

Signed-off-by: LIU Hao <[email protected]>
---
 gcc/config/mingw/mingw-stdint.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/mingw/mingw-stdint.h b/gcc/config/mingw/mingw-stdint.h
index 4c10ae6315a5..2309192c268f 100644
--- a/gcc/config/mingw/mingw-stdint.h
+++ b/gcc/config/mingw/mingw-stdint.h
@@ -38,11 +38,11 @@ along with GCC; see the file COPYING3.  If not see
 #define UINT_LEAST64_TYPE "long long unsigned int"
 
 #define INT_FAST8_TYPE "signed char"
-#define INT_FAST16_TYPE "short int"
+#define INT_FAST16_TYPE "int"
 #define INT_FAST32_TYPE "int"
 #define INT_FAST64_TYPE "long long int"
 #define UINT_FAST8_TYPE "unsigned char"
-#define UINT_FAST16_TYPE "short unsigned int"
+#define UINT_FAST16_TYPE "unsigned int"
 #define UINT_FAST32_TYPE "unsigned int"
 #define UINT_FAST64_TYPE "long long unsigned int"
 
-- 
2.54.0

From f3966cabb7e2ec029fc6801aa40fbd7dff4cabae Mon Sep 17 00:00:00 2001
From: LIU Hao <[email protected]>
Date: Sat, 13 Jun 2026 20:37:35 +0800
Subject: [PATCH] headers/stdint: Change `u?int_fast16_t` to match Microsoft
 declarations

Signed-off-by: LIU Hao <[email protected]>
---
 mingw-w64-headers/crt/stdint.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-headers/crt/stdint.h b/mingw-w64-headers/crt/stdint.h
index 3372f7530..b18067568 100644
--- a/mingw-w64-headers/crt/stdint.h
+++ b/mingw-w64-headers/crt/stdint.h
@@ -57,8 +57,8 @@ __MINGW_EXTENSION typedef unsigned long long   uint_least64_t;
  */
 typedef signed char int_fast8_t;
 typedef unsigned char uint_fast8_t;
-typedef short  int_fast16_t;
-typedef unsigned short  uint_fast16_t;
+typedef int  int_fast16_t;
+typedef unsigned int  uint_fast16_t;
 typedef int  int_fast32_t;
 typedef unsigned  int  uint_fast32_t;
 __MINGW_EXTENSION typedef long long  int_fast64_t;
-- 
2.54.0

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to