This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] C++ EH question


On Mon, 24 Mar 2003 16:57:31 -0700, law at redhat dot com wrote:

> So I'm sitting here still extremely confused by the code in except.c.
> I'm starting to think that ignoring it for now and simply asking a 
> few questions is advisable at this stage.
>
> The second operand of a TRY_CATCH_EXPR has a list of types handled by
> the catch block.  These are CATCH_TYPES.  Right?

CATCH_TYPES is the first operand of a CATCH_EXPR, which is different from a
TRY_CATCH_EXPR.

There are three cases for the handler operand of a TRY_CATCH_EXPR:

case CATCH_EXPR: (possibly wrapped in a COMPOUND_EXPR)
  This is a try/catch construct, with a sequence of CATCH_EXPRs, one for
  each catch block.
case EX_FILTER_EXPR:
  This is an exception specification.
default:
  This is a cleanup.

expand_eh_handler deals with the different possibilities.

> If CATCH_TYPES is null, does the catch block effectively handle all
> types?

Yes.

Jason


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]