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);

Reply via email to