https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121150
Bug ID: 121150 Summary: FAIL: 20_util/hash/int128.cc -std=c++17 execution test Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com Target Milestone: --- I got FAIL: 20_util/hash/int128.cc -std=c++17 execution test with -mx32: /export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/20_util/hash/int128.cc:12: int main(): Assertion 'h(i) == i' failed. #ifdef __SIZEOF_INT128__ std::hash<__int128> h; __int128 i = (__int128)0x123456789; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For x32, long is 32 bits. INT64 suffix should be used. VERIFY( h(i) == i ); VERIFY( h(-i) == (std::size_t)-i ); VERIFY( h(~i) == (std::size_t)~i ); std::hash<unsigned __int128> hu; unsigned __int128 u = i; VERIFY( hu(u) == u ); VERIFY( hu(~u) == (std::size_t)~u ); #endif