https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118641
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Created attachment 60267 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60267&action=edit Self contained testcase Testcase. The argument passed to the constructor of A is the order of which is expected to be deconstructored. That is b should be deconstructed first followed by the return one and then a and then the new return value one.