diff options
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp')
| -rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp index d8c52941b193..a76639bb86b2 100644 --- a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp @@ -337,6 +337,10 @@ static std::optional<std::string> printReferrer(const MemRegion *Referrer) { // warn_bind_ref_member_to_parameter or // warn_init_ptr_member_to_parameter_addr return std::nullopt; + } else if (isa<AllocaRegion>(Referrer)) { + // Skip alloca() regions, they indicate advanced memory management + // and higher likelihood of CSA false positives. + return std::nullopt; } else { assert(false && "Unexpected referrer region type."); return std::nullopt; |
