lebedev.ri marked an inline comment as done.
lebedev.ri added inline comments.
================
Comment at: clang/lib/Analysis/CFG.cpp:2725
NoReturn = true;
- if (FD->hasAttr<NoThrowAttr>())
+ if (FD->hasAttr<NoUnwindAttr>() || FD->hasAttr<NoThrowAttr>())
AddEHEdge = false;
----------------
erichkeane wrote:
> lebedev.ri wrote:
> > erichkeane wrote:
> > > I find myself thinking we should probably have a function in FunctionDecl
> > > that tests for the various states of the function, rather than keep
> > > checking the attribute's presence.
> > Yes, we have a huge spaghetti code spread through clang
> > that tries to answer the same two question:
> > 1. i'm a caller, if i call this function, might it throw?
> > 1. i'm a callee, what should i do with exceptions that try to unwind out of
> > me?
> >
> > I don't know how to improve that, and i don't think just moving this into
> > FunctionDecl would help.
> >
> `FunctionDecl::WontThrow` and `FunctionDecl::ShouldUnwind` ?
As noted in the RFC, there are 3 possible behaviors on unwind.
If we want to improve interface, we should account for all of them.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138958/new/
https://reviews.llvm.org/D138958
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits