diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/function.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6d8d115..0f24eae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-03-27 Richard Henderson <rth@redhat.com> + + * function.c (expand_function_start): Set DECL_REGISTER on + a pseudo used for DECL_RESULT. + 2001-03-27 Stan Shebs <shebs@apple.com> * objc/objc-act.c (objc_init): Use dump_base_name. diff --git a/gcc/function.c b/gcc/function.c index e8e35ae..71bdf9d 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6387,10 +6387,13 @@ expand_function_start (subr, parms_have_cleanups) #endif SET_DECL_RTL (DECL_RESULT (subr), gen_reg_rtx (mode)); + /* Needed because we may need to move this to memory + in case it's a named return value whose address is taken. */ + DECL_REGISTER (DECL_RESULT (subr)) = 1; } else - /* Scalar, returned in a register. */ { + /* Scalar, returned in a register. */ SET_DECL_RTL (DECL_RESULT (subr), hard_function_value (TREE_TYPE (DECL_RESULT (subr)), subr, 1)); |