https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945
--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> --- We'd need the FE to note it somewhere (of course, if it is indirect call or the call doesn't bind to the definition we'd need to assume it might be with mandatory NRV). I think in the C++ FE it is finalized in finalize_nrv, but which one is mandatory and which one is just that the FE does it because it is allowed to, no idea. Plus, not really sure if it would be valid to rely on it the way the testcase does if it is not mandatory. Jason?