[M3devel] gcc/eh/setjmp
Tony Hosking
hosking at cs.purdue.edu
Mon Jan 21 16:59:35 CET 2008
I think gcc was forced not to act on it by use of LABEL_PRESERVE_P
and FORCED_LABEL as well as making the function containing the TRY
non-inlinable, plus lots of other goop to let the flow analyser know
that funky stuff was going on at labels for TRY scopes. Take a look
at the lines of parse.c that deal with "set_label" when "barrier=TRUE".
On Jan 21, 2008, at 5:50 AM, Jay wrote:
> Folks, try adding -Wunreachable-code to your m3back options and
> tell me if you don't get loads of warnings.
> for stuff like:
>
> TRY
> return Foo();
> ELSE
> return FALSE;
>
> I get them on NT386GNU and PPC_DARWIN.
>
> Functions with TRY need, in gcc parlance:
> calls_setjmp
>
> and the exception/finally blocks need:
> has_nonlocal_label
>
> and functions with RAISE might need:
> has_nonlocal_goto
>
> Luckily, gcc doesn't seem to act on what it figure out.
>
> - Jay
>
>
>
>
>
> Helping your favorite cause is as easy as instant messaging. You
> IM, we give. Learn more.
More information about the M3devel
mailing list