From: Jason Merrill Date: Tue, 6 Jun 2023 16:01:23 +0000 (-0400) Subject: c++: add NRV testcase [PR58050] X-Git-Tag: basepoints/gcc-15~8550 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fe84e2a4c0b600d2bc01f171b3b9dd1f4357208;p=thirdparty%2Fgcc.git c++: add NRV testcase [PR58050] This was fixed in GCC 10. PR c++/58050 gcc/testsuite/ChangeLog: * g++.dg/opt/nrv24.C: New test. --- diff --git a/gcc/testsuite/g++.dg/opt/nrv24.C b/gcc/testsuite/g++.dg/opt/nrv24.C new file mode 100644 index 000000000000..7a7a59b26f7d --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/nrv24.C @@ -0,0 +1,18 @@ +// PR c++/58050 +// { dg-do link } + +struct B { + B() { } + B(const B&); // not defined, link error on unnecessary copy + ~B() { } +}; +struct A { + static B make() { return B(); } +} a; +A *ap() { return &a; } +int main () { + {B b = A::make();} + {B B = a.make();} + {B b = ap()->make();} + {B b = A().make();} +}