On Sat, Jun 13, 2026 at 2:54 PM LIU Hao <[email protected]> wrote: > > 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.
Is there a technical rationale from Microsoft? Does this apply to both x86 and aarch64? > > > > 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 > >
