https://gcc.gnu.org/g:61cb0c889e1f9a9f4ea5b22bbe089a906410374a
commit r14-10519-g61cb0c889e1f9a9f4ea5b22bbe089a906410374a Author: Jakub Jelinek <ja...@redhat.com> Date: Mon Jul 29 09:33:09 2024 +0200 testsuite: Fix up consteval-prop21.C for 32-bit targets [PR115986] The test fails on 32-bit targets (which don't support __int128 type). Using unsigned long long instead still ICEs before the fix and passes after it on those targets. 2024-07-29 Jakub Jelinek <ja...@redhat.com> PR c++/115986 * g++.dg/cpp2a/consteval-prop21.C (operator "" _c): Use unsigned long long rather than __uint128_t for return type if int128 is unsupported. (cherry picked from commit 331f23540eec39fc1e665f573c4aac258bba6043) Diff: --- gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C b/gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C index debbda4f4259..36da1bd91f3a 100644 --- a/gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C +++ b/gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C @@ -5,7 +5,13 @@ template <typename T> constexpr int b(T) { return 0; } -consteval __uint128_t operator"" _c(const char*) { return 0; } +consteval +#ifdef __SIZEOF_INT128__ +__uint128_t +#else +unsigned long long +#endif +operator"" _c(const char*) { return 0; } constexpr char e() { long f = true ? 0 : b(long(1)); return b(f);