[clang] [analyzer] Implement BugReporterVisitor for UseAfterLifetimeEnd to trace lifetime source binding (PR #207052)
Benedek Kaibas via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 27 03:38:33 PDT 2026
================
@@ -8,12 +8,35 @@ using namespace ento;
namespace {
class UseAfterLifetimeEnd : public Checker<check::EndFunction> {
public:
- void reportDanglingSource(const MemRegion *Source, ExplodedNode *N,
+ void reportDanglingSource(const MemRegion *Source, SVal Val, ExplodedNode *N,
CheckerContext &C) const;
void checkEndFunction(const ReturnStmt *RS, CheckerContext &C) const;
const BugType BugMsg{this, "UseAfterLifetimeEnd", "LifetimeBound"};
};
+class UseAfterLifetimeEndBRVisitor : public BugReporterVisitor {
+ SVal BoundVal;
+ const MemRegion *SourceRegion;
+
+public:
+ explicit UseAfterLifetimeEndBRVisitor(SVal Val, const MemRegion *Source)
+ : BoundVal(Val), SourceRegion(Source) {}
+
+ void Profile(llvm::FoldingSetNodeID &ID) const override {
+ static int X = 0;
+ ID.AddPointer(&X);
----------------
benedekaibas wrote:
@Xazax-hun I agree. Also since we have discussed using `trackExpressionValue` for better path notes I think this PR should be merged after #212158.
https://github.com/llvm/llvm-project/pull/207052
More information about the cfe-commits
mailing list