This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Problem with recent fixes in loop_iterations ?
- From: Olivier Hainque <hainque at ACT-Europe dot FR>
- To: Franz dot Sirl-kernel at lauterbach dot com
- Cc: gcc at gcc dot gnu dot org
- Date: 27 Nov 2001 18:26:41 +0100
- Subject: 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