From 9c65bbf460d325bf794a610e16ae941f723e3fef Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 8 Jun 2001 14:26:51 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 3 +++ gcc/function.c | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 05be51cfbfb..016586bf4f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Fri Jun 8 14:16:33 CEST 2001 Jan Hubicka + * 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 64df1bd42e6..cef669770a1 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