On Mon, Apr 17, 2023 at 08:41:38AM +0000, Richard Biener via Gcc-patches wrote: > * g++.dg/pr109524.C: New testcase.
This testcase was reduced such that it isn't valid C++23, so with my usual testing with GXX_TESTSUITE_STDS=98,11,14,17,20,2b it fails: FAIL: g++.dg/pr109524.C -std=gnu++2b (test for excess errors) .../gcc/testsuite/g++.dg/pr109524.C: In function 'nn hh(nn)': .../gcc/testsuite/g++.dg/pr109524.C:35:12: error: cannot bind non-const lvalue reference of type 'nn&' to an rvalue of type 'nn' .../gcc/testsuite/g++.dg/pr109524.C:17:6: note: initializing argument 1 of 'nn::nn(nn&)' The following patch fixes that and I've verified it doesn't change anything on what the test was testing, it still ICEs in r13-7198 and passes in r13-7203, now in all language modes (except for 98 where it is intentionally UNSUPPORTED). Tested on x86_64-linux -m32/-m64, committed to trunk and 13 branch as obvious. 2023-04-19 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/109524 * g++.dg/pr109524.C (nn::nn): Change argument type from nn & to const nn &. --- gcc/testsuite/g++.dg/pr109524.C.jj 2023-04-17 11:44:12.405551621 +0200 +++ gcc/testsuite/g++.dg/pr109524.C 2023-04-19 09:54:45.211210827 +0200 @@ -14,7 +14,7 @@ struct _Guard { }; struct nn { int * _M_dataplus; - nn(nn &) + nn(const nn &) { f(); _Guard __guard; Jakub