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