diff options
author | Jan Hubicka <jh@suse.cz> | 2001-06-08 14:26:51 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-06-08 12:26:51 +0000 |
commit | 9c65bbf460d325bf794a610e16ae941f723e3fef (patch) | |
tree | c2ee3d50f9715814d7fde13ffec18df50f6dd6f4 /gcc | |
parent | cf7ec0ab009db4a5cda12d0756427bd6d292e377 (diff) | |
download | gcc-9c65bbf460d325bf794a610e16ae941f723e3fef.zip gcc-9c65bbf460d325bf794a610e16ae941f723e3fef.tar.gz gcc-9c65bbf460d325bf794a610e16ae941f723e3fef.tar.bz2 |
function.c (clobber_return_register): Clobber the pseudo return register too.
* function.c (clobber_return_register): Clobber the pseudo return
register too.
From-SVN: r43011
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/function.c | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 05be51c..016586b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Fri Jun 8 14:16:33 CEST 2001 Jan Hubicka <jh@suse.cz> + * function.c (clobber_return_register): Clobber the pseudo return + register too. + * sibcall.c (skip_unreturned_value): New function. (call_ends_block_p): Use it. diff --git a/gcc/function.c b/gcc/function.c index 64df1bd..cef6697 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6601,6 +6601,17 @@ void clobber_return_register () { diddle_return_value (do_clobber_return_reg, NULL); + + /* In case we do use pseudo to return value, clobber it too. */ + if (DECL_RTL_SET_P (DECL_RESULT (current_function_decl))) + { + tree decl_result = DECL_RESULT (current_function_decl); + rtx decl_rtl = DECL_RTL (decl_result); + if (REG_P (decl_rtl) && REGNO (decl_rtl) >= FIRST_PSEUDO_REGISTER) + { + do_clobber_return_reg (decl_rtl, NULL); + } + } } static void |