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]

Re: bug in flow.c


On Mon, Aug 21, 2000 at 10:55:06AM -0600, Jeffrey A Law wrote:
> I'd rather see this handled inside the previous hunk of code.
> 
> ie, somewhere inside this if block:
> 
>  /* Remove what will soon cease being the jump insn from the source block.
>      If block B consisted only of this single jump, turn it into a deleted
>      note.  */
>   q = b->end;
>   if (GET_CODE (q) == JUMP_INSN
>       && onlyjump_p (q)
>       && (any_uncondjump_p (q)
>           || (b->succ == e && e->succ_next == NULL)))
>     {
>     [ ... ]
>     }

I agree.  See if this patch fixes your bug.


r~


Index: flow.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/flow.c,v
retrieving revision 1.325
diff -c -p -d -r1.325 flow.c
*** flow.c	2000/08/15 17:31:29	1.325
--- flow.c	2000/08/21 21:47:46
*************** tidy_fallthru_edge (e, b, c)
*** 2552,2558 ****
  	  NOTE_SOURCE_FILE (q) = 0;
  	}
        else
! 	b->end = q = PREV_INSN (q);
      }
  
    /* Selectively unlink the sequence.  */
--- 2552,2560 ----
  	  NOTE_SOURCE_FILE (q) = 0;
  	}
        else
! 	q = PREV_INSN (q);
! 
!       b->end = q;
      }
  
    /* Selectively unlink the sequence.  */

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