diff --git a/parallel_hashmap/phmap.h b/parallel_hashmap/phmap.h index 748c003..badde58 100644 --- a/parallel_hashmap/phmap.h +++ b/parallel_hashmap/phmap.h @@ -289,7 +289,7 @@ inline __m128i _mm_cmpgt_epi8_fixed(__m128i a, __m128i b) { #pragma GCC diagnostic ignored "-Woverflow" if (std::is_unsigned::value) { - const __m128i mask = _mm_set1_epi8(0x80); + const __m128i mask = _mm_set1_epi8(static_cast(0x80)); const __m128i diff = _mm_subs_epi8(b, a); return _mm_cmpeq_epi8(_mm_and_si128(diff, mask), mask); } diff --git a/parallel_hashmap/phmap_bits.h b/parallel_hashmap/phmap_bits.h index c48e8ea..7eb3fac 100644 --- a/parallel_hashmap/phmap_bits.h +++ b/parallel_hashmap/phmap_bits.h @@ -339,7 +339,8 @@ PHMAP_BASE_INTERNAL_FORCEINLINE int CountTrailingZerosNonZero32(uint32_t n) { #ifdef PHMAP_HAVE_INTRINSIC_INT128 inline uint64_t umul128(uint64_t a, uint64_t b, uint64_t* high) { - auto result = static_cast(a) * static_cast(b); + auto result = static_cast<__extension__ unsigned __int128>(a) * + static_cast<__extension__ unsigned __int128>(b); *high = static_cast(result >> 64); return static_cast(result); }