[llvm-dev] help me understand how nounwind attribute on functions works?

Reid Kleckner via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 9 08:41:42 PST 2017

On Wed, Feb 8, 2017 at 5:45 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
> What isn’t clear to me still is : why shouldn't this be transitive?
> In the example you’re showing, for a caller of f() in bar, what is the
> advantage of knowing that f() is nounwind if it an exception can still be
> thrown? What does it allow?

We know an exception cannot unwind out of f. An exception can be thrown
inside something that f calls, but it must be caught before it unwinds
beyond f.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170209/03268144/attachment.html>

More information about the llvm-dev mailing list