clobber_return_register fix
Jan Hubicka
jh@suse.cz
Wed Jun 6 06:01:00 GMT 2001
Wed Jun 6 15:00:59 CEST 2001 Jan Hubicka <jh@suse.cz>
* function.c (clobber_return_register): Clobber the pseudo return
register too.
Index: function.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/function.c,v
retrieving revision 1.273
diff -c -3 -p -r1.273 function.c
*** function.c 2001/06/05 06:51:02 1.273
--- function.c 2001/06/06 12:56:58
*************** void
*** 6601,6606 ****
--- 6574,6592 ----
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
+ : DECL_REGISTER (decl_result))
+ {
+ do_clobber_return_reg (decl_rtl, NULL);
+ }
+ }
}
static void
More information about the Gcc-patches
mailing list