This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] Another EH cfg cleanup PATCH
- From: law at redhat dot com
- To: Jason Merrill <jason at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 30 May 2003 09:27:09 -0600
- Subject: Re: [tree-ssa] Another EH cfg cleanup PATCH
- Reply-to: law at redhat dot com
In message <email@example.com>, Jason Merrill writes:
>On Thu, 29 May 2003 19:22:36 -0600, firstname.lastname@example.org wrote:
>> And how would I identify such TRY_CATCH_EXPRs? By the lack of a
>> CATCH_EXPR in operand 1 of the TRY_CATCH_EXPR?
>More or less, though you also have to check for EH_FILTER_EXPR, and the
>CATCH_EXPR might be wrapped in a COMPOUND_EXPR.
Yup. That's already handled as well. It fell right out since I copied the
code to detect cleanups from elsewhere. In all it was pretty simple once
I decided that it had to be a two step process. You can't wire up the
edge when building blocks (the parent cleanup will not have any blocks) and
you don't have the nice nesting info when wiring up edges (well, maybe it
exists via parent_stmt).
So the "obvious" solution is to record the tree node for the parent cleanup
when building blocks since we have the nesting structure handily available
and wire up the edge when building all the special edges.
>The simplest thing would
>be to use get_eh_region_type from the patch I sent you.
Given that I seem to have lost it, could you resend it so I can see if
I'm missing anything obvious?