diff --git a/parallel_hashmap/phmap_bits.h b/parallel_hashmap/phmap_bits.h index 7eb3fac..1d9c413 100644 --- a/parallel_hashmap/phmap_bits.h +++ b/parallel_hashmap/phmap_bits.h @@ -337,10 +337,17 @@ PHMAP_BASE_INTERNAL_FORCEINLINE int CountTrailingZerosNonZero32(uint32_t n) { #endif #ifdef PHMAP_HAVE_INTRINSIC_INT128 + + #if defined(__GNUC__) && !defined(__clang__) + #define PHMAP_EXTENSION + #else + #define PHMAP_EXTENSION __extension__ + #endif + inline uint64_t umul128(uint64_t a, uint64_t b, uint64_t* high) { - auto result = static_cast<__extension__ unsigned __int128>(a) * - static_cast<__extension__ unsigned __int128>(b); + auto result = static_cast(a) * + static_cast(b); *high = static_cast(result >> 64); return static_cast(result); }