From 9076014aa3750c8583490d9274a8f814642affaa Mon Sep 17 00:00:00 2001 From: Jordy Rose Date: Wed, 18 Aug 2010 04:33:47 +0000 Subject: [PATCH] Remove dead malloc symbols from the symbol-state map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111353 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Checker/MallocChecker.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/Checker/MallocChecker.cpp b/lib/Checker/MallocChecker.cpp index 7aa89e0998..0076e1e868 100644 --- a/lib/Checker/MallocChecker.cpp +++ b/lib/Checker/MallocChecker.cpp @@ -567,6 +567,7 @@ void MallocChecker::EvalDeadSymbols(CheckerContext &C,SymbolReaper &SymReaper) { const GRState *state = C.getState(); RegionStateTy RS = state->get(); + RegionStateTy::Factory &F = state->get_context(); for (RegionStateTy::iterator I = RS.begin(), E = RS.end(); I != E; ++I) { if (SymReaper.isDead(I->first)) { @@ -580,8 +581,14 @@ void MallocChecker::EvalDeadSymbols(CheckerContext &C,SymbolReaper &SymReaper) { C.EmitReport(R); } } + + // Remove the dead symbol from the map. + RS = F.Remove(RS, I->first); } } + + state = state->set(RS); + C.GenerateNode(state); } void MallocChecker::EvalEndPath(GREndPathNodeBuilder &B, void *tag, -- 2.40.0