https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125711

--- Comment #8 from Iain Sandoe <iains at gcc dot gnu.org> ---
maybe this is sufficient... (not tested)

diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc
index 8bfc71315f9..1fd0c1eb372 100644
--- a/gcc/gimplify.cc
+++ b/gcc/gimplify.cc
@@ -1879,7 +1879,8 @@ gimplify_return_expr (tree stmt, gimple_seq *pre_p)
     return GS_ERROR;

   if (!ret_expr
-      || TREE_CODE (ret_expr) == RESULT_DECL)
+      || TREE_CODE (ret_expr) == RESULT_DECL
+      || ret_expr == gimplify_ctxp->return_temp)
     {
       maybe_add_early_return_predict_stmt (pre_p);
       greturn *ret = gimple_build_return (ret_expr);

Reply via email to