================ @@ -1016,17 +1018,22 @@ class Analyzer { // Check for a call to a builtin function, whose effects are // handled specially. if (const auto *FD = dyn_cast<FunctionDecl>(CI.CDecl)) { + bool IgnoreIfNoexceptNoreturn = true; if (unsigned BuiltinID = FD->getBuiltinID()) { CI.Effects = getBuiltinFunctionEffects(BuiltinID); if (CI.Effects.empty()) { // A builtin with no known effects is assumed safe. return; } + // A builtin WITH effects doesn't get any special treatment for + // being noreturn/noexcept, e.g. longjmp(). + IgnoreIfNoexceptNoreturn = false; ---------------- Sirraide wrote:
I think it would be less confusing in the long run to just call this variable `IsBuiltin` seeing as that’s what it actually means right now. (bringing up a lot of nits today I know, but that’s also a sign that there aren’t any major changes left ;Þ) https://github.com/llvm/llvm-project/pull/99656 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits