on non-local gotos and computed jumps
Graham Stott
grahams@redhat.com
Thu Dec 21 02:10:00 GMT 2000
Richard
Richard Henderson wrote:
>
> On Wed, Dec 20, 2000 at 12:53:01PM -0200, Alexandre Oliva wrote:
> > [WRT a new port] gcc.c-torture/execute/920501-7.c has uncovered what
> > I believe to be a generic problem...
>
> In summary of what Alex deduced, we cannot tell the difference between
> a non-local goto and a computed goto when it comes time to construct the
> CFG. If there exists exactly one computed goto target in a function,
> we'll create incorrect edges leading to the function being miscompiled.
>
> Modified test case attached.
>
> Fixed thus.
>
> r~
>
>
I'm getting an abort in distribute_notes combine.c:12752.
This occurs because we have a REG_NON_LOCAL_GOTO which isn't
handled in the switch so it triggers the abort in the default
default:
/* Any other notes should not be present at this point in the
compilation. */
abort ();
Graham
ps. This occurs when compiling __sjthrow in libgcc2.c on i686-linux.
More information about the Gcc-patches
mailing list