On Tue, Sep 22, 2026 at 2:12 AM Matt Turner <[email protected]> wrote:
>
> wide-int.cc has skipped longlong.h under clang since PR bootstrap/61146,
> because clang rejected the casts on asm output operands in it.
> longlong.h now builds with clang, so drop the check. A GCC built by
> clang without bootstrapping, such as a cross compiler or a compiler
> hosted on macOS, then uses umul_ppmm from longlong.h in wi::mul_internal
> instead of the generic multiplication loop.

OK if the prerequisite goes in.

Richard.

> gcc/ChangeLog:
>
>         PR bootstrap/61146
>         * wide-int.cc: Include longlong.h with clang too.
> ---
>  gcc/wide-int.cc | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/gcc/wide-int.cc b/gcc/wide-int.cc
> index 668b2e4ea7d..4d1ca4b0b6f 100644
> --- a/gcc/wide-int.cc
> +++ b/gcc/wide-int.cc
> @@ -36,8 +36,7 @@ along with GCC; see the file COPYING3.  If not see
>  #endif
>
>  #define W_TYPE_SIZE HOST_BITS_PER_WIDE_INT
> -/* Do not include longlong.h when compiler is clang-based. See PR61146.  */
> -#if GCC_VERSION >= 3000 && (W_TYPE_SIZE == 32 || defined 
> (__SIZEOF_INT128__)) && !defined(__clang__)
> +#if GCC_VERSION >= 3000 && (W_TYPE_SIZE == 32 || defined (__SIZEOF_INT128__))
>  typedef unsigned HOST_HALF_WIDE_INT UHWtype;
>  typedef unsigned HOST_WIDE_INT UWtype;
>  typedef unsigned int UQItype __attribute__ ((mode (QI)));
>
> --
> 2.54.0
>

Reply via email to