[clang] [Analysis] Avoid some warnings about exit from noreturn function (PR #144408)
Serge Pavlov via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 25 10:42:38 PDT 2025
================
@@ -399,6 +401,145 @@ static bool isNoexcept(const FunctionDecl *FD) {
return false;
}
+/// Checks if the given variable, which is assumed to be a function pointer, is
+/// initialized with a function having 'noreturn' attribute.
+static bool isInitializedWithNoReturn(const VarDecl *VD) {
----------------
spavloff wrote:
> We are checking the initializer here, but we don't check to make sure it wasn't assigned since then, right?
No, the statements in a basic block are scanned in backward direction. So if the basic block contains an assignment, it will be tested first.
> IMO it seems this is a failure of [[noreturn]] not being part of the type :)
You are not alone. For instance, GCC developers have the same opinion: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80495#c1.
https://github.com/llvm/llvm-project/pull/144408
More information about the cfe-commits
mailing list