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
>
>

Reply via email to