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.