[LLVMdev] clang/g++ frontend: can __cxa_end_catch throw?
yuri at rawbw.com
Mon Jul 12 13:22:02 PDT 2010
On 07/12/2010 12:41, John McCall wrote:
> For your test case, clang++'s code is correct (and better) because
> __cxa_end_catch won't throw for a caught exception of that type. That
Which type? There are two pending exceptions at the moment when
__cxa_end_catch is called, both with invisible destructors: E* and
unknown type thrown from mycatching(). __cxa_end_catch attempts to
delete E* and proceed to rethrow the unknown one when the other unknown
exception is thrown by E::~E(). Isn't this the condition for terminate()?
More information about the llvm-dev