From: Jason Merrill Date: Tue, 10 Aug 2004 18:02:18 +0000 (-0400) Subject: function.c (expand_function_start): Handle DECL_BY_REFERENCE on the RESULT_DECL. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=01c985700000ecfa510dde907812cb389d28695e;p=gcc.git function.c (expand_function_start): Handle DECL_BY_REFERENCE on the RESULT_DECL. * function.c (expand_function_start): Handle DECL_BY_REFERENCE on the RESULT_DECL. From-SVN: r85763 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6db90d9bb66..88c4d8f06ef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-08-10 Jason Merrill + + * function.c (expand_function_start): Handle DECL_BY_REFERENCE on + the RESULT_DECL. + 2004-08-10 Geoffrey Keating * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the diff --git a/gcc/function.c b/gcc/function.c index ed7821b4f7b..e59f002cb5c 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4005,8 +4005,12 @@ expand_function_start (tree subr) } if (value_address) { - rtx x = gen_rtx_MEM (DECL_MODE (DECL_RESULT (subr)), value_address); - set_mem_attributes (x, DECL_RESULT (subr), 1); + rtx x = value_address; + if (!DECL_BY_REFERENCE (DECL_RESULT (subr))) + { + x = gen_rtx_MEM (DECL_MODE (DECL_RESULT (subr)), x); + set_mem_attributes (x, DECL_RESULT (subr), 1); + } SET_DECL_RTL (DECL_RESULT (subr), x); } }