[clang] [analyzer] Fix security.VAList false positives with C23 va_start (PR #192024)
Björn Svensson via cfe-commits
cfe-commits at lists.llvm.org
Mon May 4 04:07:48 PDT 2026
================
@@ -136,13 +136,14 @@ const SmallVector<VAListChecker::VAListAccepter, 15>
const CallDescription VAListChecker::VaStart(CDM::CLibrary,
{"__builtin_va_start"}, /*Args=*/2,
/*Params=*/1),
+ VAListChecker::VaStartC23(CDM::CLibrary, {"__builtin_c23_va_start"}),
VAListChecker::VaCopy(CDM::CLibrary, {"__builtin_va_copy"}, 2),
VAListChecker::VaEnd(CDM::CLibrary, {"__builtin_va_end"}, 1);
} // end anonymous namespace
void VAListChecker::checkPreCall(const CallEvent &Call,
CheckerContext &C) const {
- if (VaStart.matches(Call))
+ if (VaStart.matches(Call) || VaStartC23.matches(Call))
----------------
bjosv wrote:
Good idea to clean it up a bit. I used `matchesAny` instead to make it work.
https://github.com/llvm/llvm-project/pull/192024
More information about the cfe-commits
mailing list