From b2cfe5233e682fc04a9b6fc91f3d30685515630b Mon Sep 17 00:00:00 2001 From: Lewis Hyatt Date: Wed, 19 Jul 2023 22:07:54 -0400 Subject: [PATCH] testsuite: Fix C++ UDL tests failing on 32-bit arch [PR103902] These tests need to use "size_t" rather than "unsigned long" for the user-defined literal function arguments. gcc/testsuite/ChangeLog: PR preprocessor/103902 * g++.dg/cpp0x/udlit-extended-id-1.C: Change "unsigned long" to "size_t" throughout. * g++.dg/cpp0x/udlit-extended-id-3.C: Likewise. --- gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C | 9 +++++---- gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C b/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C index 5ea5ef09db6..c7091e9e8a2 100644 --- a/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C +++ b/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C @@ -1,6 +1,7 @@ // { dg-do run { target c++11 } } // { dg-additional-options "-Wno-error=normalized" } #include +#include using namespace std; constexpr unsigned long long operator "" _π (unsigned long long x) @@ -21,22 +22,22 @@ char x2[2_Π2]; static_assert (sizeof x1 == 3, "test1"); static_assert (sizeof x2 == 8, "test2"); -const char * operator "" _1σ (const char *s, unsigned long) +const char * operator "" _1σ (const char *s, size_t) { return s + 1; } -const char * operator ""_Σ2 (const char *s, unsigned long) +const char * operator ""_Σ2 (const char *s, size_t) { return s + 2; } -const char * operator "" _\U000000e61 (const char *s, unsigned long) +const char * operator "" _\U000000e61 (const char *s, size_t) { return "ae"; } -const char* operator ""_\u01532 (const char *s, unsigned long) +const char* operator ""_\u01532 (const char *s, size_t) { return "oe"; } diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C b/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C index 11292e476e3..cb8a957947a 100644 --- a/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C +++ b/gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C @@ -1,9 +1,11 @@ // { dg-do compile { target c++11 } } +#include +using namespace std; // Check that we do not look for poisoned identifier when it is a suffix. int _ħ; #pragma GCC poison _ħ -const char * operator ""_ħ (const char *, unsigned long); // { dg-bogus "poisoned" } +const char * operator ""_ħ (const char *, size_t); // { dg-bogus "poisoned" } bool operator ""_ħ (unsigned long long x); // { dg-bogus "poisoned" } bool b = 1_ħ; // { dg-bogus "poisoned" } const char *x = "hbar"_ħ; // { dg-bogus "poisoned" } @@ -11,5 +13,5 @@ const char *x = "hbar"_ħ; // { dg-bogus "poisoned" } /* Ideally, we should not warn here either, but this is not implemented yet. This syntax has been deprecated for C++23. */ #pragma GCC poison _ħ2 -const char * operator "" _ħ2 (const char *, unsigned long); // { dg-bogus "poisoned" "" { xfail *-*-*} } +const char * operator "" _ħ2 (const char *, size_t); // { dg-bogus "poisoned" "" { xfail *-*-*} } const char *x2 = "hbar2"_ħ2; // { dg-bogus "poisoned" }