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 >
