--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The reason we don't NRV optimize here is that check_return_expr isn't called
with retval of a VAR_DECL, but rather a TARGET_EXPR. Looking through to
TARGET_EXPR to TARGET_EXPR_SLOT ICEs later though.
Anyway, if I change the testcase to:
constexpr auto make_instance(int i_value)
so that it actually is NRV optimized, it still doesn't help and there is still
some unrelated temporary created for AGGR_INIT_EXPR rather than the RESULT_DECL
mapped to the destination when constexpr evaluating the function call.