[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