This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: bug in flow.c
- To: Jeffrey A Law <law at cygnus dot com>
- Subject: Re: bug in flow.c
- From: Richard Henderson <rth at cygnus dot com>
- Date: Mon, 21 Aug 2000 14:48:24 -0700
- Cc: Jan Dvorak <johnydog at go dot cz>, Andrew Phillips <atp at pergamentum dot com>, gcc at gcc dot gnu dot org
- References: <20000821152153.A776@napalm.go.cz> <6042.966876906@upchuck>
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. */