Kenneth Uildriks wrote:> Sweet! That is exactly what I've been looking for. I guess it's > going in the 2.6 release then?Yes. You still need to call __cxa_throw (or equivalent) to throw a new exception, but you can now use unwind to rethrow an exception from the unwind block of an invoke. That said, I don't think anyone is making use of it - probably no-one except me even knows about it :)> And __cxa_throw will still throw a DWARF exception with the landing > pads and the exception object selection and all that jazz?The __cxa_throw code is part of the gcc library and outside the control of the LLVM project, so it works the same as before. Ciao, Duncan.
> Yes. You still need to call __cxa_throw (or equivalent) to throw > a new exception, but you can now use unwind to rethrow an exception > from the unwind block of an invoke. That said, I don't think anyone > is making use of it - probably no-one except me even knows about it :)I forgot to mention that for the moment you still need to specify the personality function using an eh.selector. That's because I never got around to telling the code generators that if there is none then it should use the C (not C++) personality. Ciao, Duncan.
> I forgot to mention that for the moment you still need to specify > the personality function using an eh.selector. That's because I > never got around to telling the code generators that if there is > none then it should use the C (not C++) personality.You only need that to throw an exception, not to do a simple unwind, right?