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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits