This is the mail archive of the gcc-bugs@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 bootstrap problems on i386


I have been seeing problems (a segv) building a stage1 gcc
with the latest sibcall code on an Intel platform.  It seems
that jump optimisation is deleting the label at the top of a
function that is required as a target for a tail call---it
is certainly there in the .rtl file but not in the .jump one.
I can fix it by the change that follows, though I anticipate
the real cure is elsewhere.


   Alasdair.


*** sibcall.c.orig	Sun Mar 19 11:05:10 2000
--- sibcall.c	Sun Mar 19 13:51:47 2000
*************** replace_call_placeholder (insn, use)
*** 341,351 ****
--- 341,353 ----
    else
      abort();
  
+ #if 0
    /* Turn off LABEL_PRESERVE_P for the tail recursion label if it
       exists.  We only had to set it long enough to keep the jump
       pass above from deleting it as unused.  */
    if (XEXP (PATTERN (insn), 3))
      LABEL_PRESERVE_P (XEXP (PATTERN (insn), 3)) = 0;
+ #endif
    
    /* "Delete" the placeholder insn. */
    PUT_CODE (insn, NOTE);



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