This is the mail archive of the gcc@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]
Other format: [Raw text]

Problem with recent fixes in loop_iterations ?



Hello,

Hoping you would be able to help with a problem we face :)

Trying to bootstrap Ada on hpux with our internal GNAT tree leads to
SEGV from within loop_iterations. Basically, we get to

 /* If there are multiple conditionalized loop exit tests, they may jump
     back to differing CODE_LABELs.  */
  if (loop->top && loop->cont)
    {
      rtx temp = PREV_INSN (last_loop_insn);

      do
	{
	  if (GET_CODE (temp) == JUMP_INSN
	      /* Previous unrolling may have generated new insns not covered
		 by the uid_luid array.  */
	      && INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop
       
 with a temp looking like the following :

 (jump_insn 5407 5406 5408 (addr_vec:DI[ 
            (label_ref:SI 5389)
            ...

 GET_CODE (temp) is indeed JUMP_INSN, but the associated JUMP_LABEL is NULL
 and INSN_UID dereferences it.

 Is having this kind of insn here something expected never to happen ... or
 should the test be refined, or ... ?

 Thank you very much in advance for your help,

 Kind Regards,

 Olivier Hainque
 --
 hainque@act-europe.fr


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