> I actually believe there was reason for creating the loop (ie
> redirecting the edge to anything else than the fallthru egdge
> destination) as otherwise we screwed up in
> force_nonfallthru_and_redirect and this function (called via
> force_nonfallthru) is supposed to redirect the jump back to proper
> destination.  This is remarkably ugly hack :(

Note, however, the differences between the version you posted and the version 
you commited; in particular, the comment about the loop totally disappeared 
in between, while the code didn't.

> Would be possible to at leat see the RTL and precise ICE this code is
> causing?

It is reproducible with 3.4.5pre at -O3 on x86:

[EMAIL PROTECTED]:~/build/gcc-3_4-branch/native32> gcc/xgcc -Bgcc -S -O3 p.adb 
-Igcc/ada/rts
+===========================GNAT BUG DETECTED==============================+
| 3.4.5 20050910 (prerelease) (i586-suse-linux-gnu) GCC error:             |
| in redirect_branch_edge, at cfgrtl.c:948                                 |
| Error detected at p.adb:70:6                                             |

Do you really want me to send RTL dumps?

Thanks for your quick response.

-- 
Eric Botcazou

Reply via email to