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