}
namespace {
-class GenericNodeBuilder {
+class GenericNodeBuilderRefCount {
StmtNodeBuilder *SNB;
const Stmt *S;
const void *tag;
EndOfFunctionNodeBuilder *ENB;
public:
- GenericNodeBuilder(StmtNodeBuilder &snb, const Stmt *s,
+ GenericNodeBuilderRefCount(StmtNodeBuilder &snb, const Stmt *s,
const void *t)
: SNB(&snb), S(s), tag(t), ENB(0) {}
- GenericNodeBuilder(EndOfFunctionNodeBuilder &enb)
+ GenericNodeBuilderRefCount(EndOfFunctionNodeBuilder &enb)
: SNB(0), S(0), tag(0), ENB(&enb) {}
ExplodedNode *MakeNode(const GRState *state, ExplodedNode *Pred) {
ExplodedNode* ProcessLeaks(const GRState * state,
llvm::SmallVectorImpl<SymbolRef> &Leaked,
- GenericNodeBuilder &Builder,
+ GenericNodeBuilderRefCount &Builder,
ExprEngine &Eng,
ExplodedNode *Pred = 0);
SymbolReaper& SymReaper);
std::pair<ExplodedNode*, const GRState *>
- HandleAutoreleaseCounts(const GRState * state, GenericNodeBuilder Bd,
+ HandleAutoreleaseCounts(const GRState * state, GenericNodeBuilderRefCount Bd,
ExplodedNode* Pred, ExprEngine &Eng,
SymbolRef Sym, RefVal V, bool &stop);
// Return statements.
// Update the autorelease counts.
static unsigned autoreleasetag = 0;
- GenericNodeBuilder Bd(Builder, S, &autoreleasetag);
+ GenericNodeBuilderRefCount Bd(Builder, S, &autoreleasetag);
bool stop = false;
llvm::tie(Pred, state) = HandleAutoreleaseCounts(state , Bd, Pred, Eng, Sym,
X, stop);
//===----------------------------------------------------------------------===//
std::pair<ExplodedNode*, const GRState *>
-CFRefCount::HandleAutoreleaseCounts(const GRState * state, GenericNodeBuilder Bd,
+CFRefCount::HandleAutoreleaseCounts(const GRState * state,
+ GenericNodeBuilderRefCount Bd,
ExplodedNode* Pred,
ExprEngine &Eng,
SymbolRef Sym, RefVal V, bool &stop) {
ExplodedNode*
CFRefCount::ProcessLeaks(const GRState * state,
llvm::SmallVectorImpl<SymbolRef> &Leaked,
- GenericNodeBuilder &Builder,
+ GenericNodeBuilderRefCount &Builder,
ExprEngine& Eng,
ExplodedNode *Pred) {
EndOfFunctionNodeBuilder& Builder) {
const GRState *state = Builder.getState();
- GenericNodeBuilder Bd(Builder);
+ GenericNodeBuilderRefCount Bd(Builder);
RefBindings B = state->get<RefBindings>();
ExplodedNode *Pred = 0;
if (const RefVal* T = B.lookup(Sym)){
// Use the symbol as the tag.
// FIXME: This might not be as unique as we would like.
- GenericNodeBuilder Bd(Builder, S, Sym);
+ GenericNodeBuilderRefCount Bd(Builder, S, Sym);
bool stop = false;
llvm::tie(Pred, state) = HandleAutoreleaseCounts(state, Bd, Pred, Eng,
Sym, *T, stop);
static unsigned LeakPPTag = 0;
{
- GenericNodeBuilder Bd(Builder, S, &LeakPPTag);
+ GenericNodeBuilderRefCount Bd(Builder, S, &LeakPPTag);
Pred = ProcessLeaks(state, Leaked, Bd, Eng, Pred);
}