const sibcall crash

Richard Henderson rth@cygnus.com
Mon May 1 17:00:00 GMT 2000


Analysis in http://gcc.gnu.org/ml/gcc-bugs/2000-04/msg00637.html .


r~

        * calls.c (expand_call): Don't emit reg notes for a sibcall.

Index: calls.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/calls.c,v
retrieving revision 1.128
diff -c -p -d -r1.128 calls.c
*** calls.c	2000/04/28 23:17:41	1.128
--- calls.c	2000/05/01 23:47:03
*************** expand_call (exp, target, ignore)
*** 2908,2914 ****
  	 Test valreg so we don't crash; may safely ignore `const'
  	 if return type is void.  Disable for PARALLEL return values, because
  	 we have no way to move such values into a pseudo register.  */
!       if ((flags & (ECF_CONST | ECF_PURE))
  	  && valreg != 0 && GET_CODE (valreg) != PARALLEL)
  	{
  	  rtx note = 0;
--- 2908,2915 ----
  	 Test valreg so we don't crash; may safely ignore `const'
  	 if return type is void.  Disable for PARALLEL return values, because
  	 we have no way to move such values into a pseudo register.  */
!       if (pass
! 	  && (flags & (ECF_CONST | ECF_PURE))
  	  && valreg != 0 && GET_CODE (valreg) != PARALLEL)
  	{
  	  rtx note = 0;


More information about the Gcc-patches mailing list