On 1/24/23 18:16, Jakub Jelinek wrote:
On Mon, Jan 23, 2023 at 10:26:14PM -0500, Jason Merrill via Gcc-patches wrote:
* g++.dg/init/new51.C: New test.
The test fails on targets where size_t is not unsigned long
due to extra diagnostics.
As the testcase is tested in C++98 too, I'm not using decltype (sizeof 0)
but __SIZE_TYPE__.
Tested on x86_64-linux and i686-linux (plus verified with older snapshots
that it ICEs even with the change with both -m32/-m64), committed to
trunk as obvious.
Thanks.
2023-01-25 Jakub Jelinek <ja...@redhat.com>
PR c++/107329
PR testsuite/108533
* g++.dg/init/new51.C (size_t): New typedef.
(RexxClass::operator new, RexxClass::operator delete): Use size_t
instead of unsigned long.
--- gcc/testsuite/g++.dg/init/new51.C.jj 2023-01-24 11:10:13.000000000
+0100
+++ gcc/testsuite/g++.dg/init/new51.C 2023-01-25 00:05:10.767472447 +0100
@@ -1,9 +1,10 @@
// PR c++/107329
+typedef __SIZE_TYPE__ size_t;
struct RexxClass {
- void *operator new(unsigned long, unsigned long, const char *, RexxClass *,
+ void *operator new(size_t, size_t, const char *, RexxClass *,
RexxClass *);
- void operator delete(void *, unsigned long, const char *, RexxClass *,
+ void operator delete(void *, size_t, const char *, RexxClass *,
RexxClass *);
RexxClass();
};
Jakub