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. 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