This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

sibcall.c SEGV fix


Hi,

instead of complaining I should have fixed it.  Here it is.


2001-02-20  Michael Matz  <matzmich@cs.tu-berlin.de>

	* sibcall.c (call_ends_block_p): honor identify_call_return_value
	return value.

Ciao,
Michael.

-- 
*** sibcall.c   Tue Feb 20 06:20:21 2001
--- /src/gcc/ra-branch-new/egcs/gcc/sibcall.c   Tue Feb 20 06:18:27 2001
***************
*** 277,286 ****
    /* Skip over copying from the call's return value pseudo into
       this function's hard return register and if that's the end
       of the block, we're OK.  */
!   identify_call_return_value (PATTERN (insn), &hardret, &softret);
!   insn = skip_copy_to_return_value (insn, hardret, softret);
!   if (insn == end)
!     return 1;

    /* Skip any stack adjustment.  */
    insn = skip_stack_adjustment (insn);
--- 277,288 ----
    /* Skip over copying from the call's return value pseudo into
       this function's hard return register and if that's the end
       of the block, we're OK.  */
!   if (identify_call_return_value (PATTERN (insn), &hardret, &softret))
!     {
!       insn = skip_copy_to_return_value (insn, hardret, softret);
!       if (insn == end)
!         return 1;
!     }

    /* Skip any stack adjustment.  */
    insn = skip_stack_adjustment (insn);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]