[cfe-commits] patch: nounwind on __cxa_guard_*

Nick Lewycky nlewycky at google.com
Mon Feb 13 15:49:48 PST 2012

On 13 February 2012 11:56, Chris Lattner <clattner at apple.com> wrote:

> On Feb 11, 2012, at 11:32 PM, Nick Lewycky wrote:
> > This patch would cause clang to mark the __cxa_guard_* functions
> 'nounwind'. I believe this is the correct reading of the Itanium ABI; the
> functions are completely specified, and each function which may throw an
> exception specifically says what exception it will throw and under what
> conditions. Most of the functions say nothing about throwing exceptions, so
> I assume that they aren't allowed to throw.
> >
> > I'm not an expert on this though, so please review.
> >
> > This would fix the intersting problem of invokes to __cxa_guard_*
> functions. Even though clang never generates an invoke to these, one still
> manages to show up in
> SingleSource/Benchmarks/Misc-C++-EH/Output/spirit.llvm.bc. How? When the
> inliner inlines an invoke, all calls inside the callee turn into invokes
> with their unwind-destination pointing at the inline-callsite's
> unwind-destination.
> Looks obviously correct to me, please apply!

Thanks Chris! Applied in r150435.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120213/de5a71c9/attachment.html>

More information about the cfe-commits mailing list