On Sun, Jun 29, 2025 at 06:28:11AM +0200, Alejandro Colomar via Gcc wrote:
> --- i/libcpp/include/cpplib.h
> +++ w/libcpp/include/cpplib.h
> @@ -1363,6 +1363,7 @@ struct cpp_num
>  #define CPP_N_SIZE_T   0x2000000 /* C++23 size_t literal.  */
>  #define CPP_N_BFLOAT16 0x4000000 /* std::bfloat16_t type.  */
>  #define CPP_N_BITINT   0x8000000 /* C23 _BitInt literal.  */
> +#define CPP_N_BITINT_N 0x10000000 /* C2y _BitInt(N) literal.  */

This is not correct.
That overlaps with the lowest bit in CPP_N_WIDTH_FLOATN_NX.
So, one would need to be extra careful not to treat say f16 suffix
which is CPP_N_FLOATN | 0x10000000 as CPP_N_BITINT_N or
wbN or uwbN suffix as the N in fN or fNx.
>  
>  #define CPP_N_WIDTH_FLOATN_NX  0xF0000000 /* _FloatN / _FloatNx value
>                                               of N, divided by 16.  */

        Jakub

Reply via email to