> 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