[LLVMdev] Darwin vs exceptions

Duncan Sands baldrick at free.fr
Sat Dec 8 00:51:41 PST 2007


Hi Chris,

> ... Claiming that a function has a  
> > catch-all handler when it does
> > not causes the unwinder to go into a loop.

this is the bit I don't understand.  Why does it go
into a loop?  How can the unwinder possibly know that
the original code did not have a catch-all, since we
tell it which catches there are and we say: there is
a catch-all!

> > -  lang_eh_catch_all = return_null_tree;
> > +/*  lang_eh_catch_all = return_null_tree;*/

> Ok, cool :)  Duncan, Anton, what do you guys think about this?

This is wrong - it breaks the semantics of invoke and causes
eh to not work properly in some cases (see my email to Dale).

Ciao,

Duncan.



More information about the llvm-dev mailing list