This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 3.1 ICE in make_label_edge on hppa1.1-hp-hpux10.20--bootstrap fails
- To: dave at hiauly1 dot hia dot nrc dot ca, gcc at gcc dot gnu dot org
- Subject: Re: gcc 3.1 ICE in make_label_edge on hppa1.1-hp-hpux10.20--bootstrap fails
- From: Jan Hubicka <jh at suse dot cz>
- Date: Tue, 17 Jul 2001 19:10:02 +0200
Hi,
> Frame 2 doesn't match up with a call so the program may have gone wild.
> If I was to guess, I think the failure is caused by Jan Hubicka's patch
> to delete unnecessary labels. Note that label=0x0 in the last call to
> make_label_edge.
Please try to CC me next time, so I will not miss the email. The volume of
gcc lists is high and I can't say I am reading everything.
Sadly for me I would also guess that my CFG work is the purpose for the failure.
I've sent short time ago fix to redirect_edge, that should fix many misterious
problems that have appeared recently. Can you please try that one and let me
know if it works? If not, can I have the preprocessed file, so I can try it on
cross-compiler?
I am attaching the patch.
Thanks,
Honza
Tue Jul 17 18:48:08 CEST 2001 Jan Hubicka <jh@suse.cz>
* flow.c (redirect_edge_and_branch): Bail out on the complex edges.
Index: flow.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/flow.c,v
retrieving revision 1.429
diff -c -3 -p -r1.429 flow.c
*** flow.c 2001/07/17 04:55:23 1.429
--- flow.c 2001/07/17 16:47:03
*************** redirect_edge_and_branch (e, target)
*** 1777,1782 ****
--- 1777,1785 ----
basic_block src = e->src;
rtx insn = src->end;
+ if (e->flags & EDGE_COMPLEX)
+ return false;
+
if (try_redirect_by_replacing_jump (e, target))
return true;
/* Do this fast path late, as we want above code to simplify for cases