Thanks for the reply. One thing that I didnt quite get...


Ian Lance Taylor wrote:

TRY_CATCH_EXPR/TRY_FINALLY_EXPR
If operand 0 throws an exception, there is an implicit rethrow after
executing operand 1.  (Of course, operand 1 can prevent that rethrow
by doing its own throw, or by calling a function which does not
return, etc.).
TRY_CATCH_EXPR is generated for C++
   try { ... } catch (...) { }

TRY_FINALLY_EXPR is generated for
   class C { ~C(); }; ... { C c; ... }
to ensure that C's destructor is run.

And of course they can be generated for other languages as well.

For the C++ code shown above try { ... } catch(...) {}
From memory I get a TRY_BLOCK node and not a TRY_CATCH_EXPR.

Also is the implicit rethrow just for the TRY_FINALLY_EXPR and not for the TRY_CATCH_EXPR or is it for both of them?

Thanks,
Brendon.

Reply via email to