factories.
Fixed a horrible bug in lval:DeclVar::classof(RValue* V); we weren't checking
V was an LValue, allowing nonlval::ConcereteInts to match isa<lval::DeclVar>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46976
91177308-0d34-0410-b5e6-
96231b3b80d8
}
static inline bool classof(const RValue* V) {
- return V->getSubKind() == SymbolValKind;
+ return isa<LValue>(V) && V->getSubKind() == SymbolValKind;
}
};
// Implement isa<T> support.
static inline bool classof(const RValue* V) {
- return V->getSubKind() == DeclValKind;
+ return isa<LValue>(V) && V->getSubKind() == DeclValKind;
}
};
if (Liveness.isLive(Loc, I.getKey()))
WList.push_back(I.getKey());
- llvm::SmallPtrSet<ValueDecl*, 10> Marked;
+ llvm::SmallPtrSet<ValueDecl*, 10> Marked;
while (!WList.empty()) {
ValueDecl* V = WList.back();
return cast<LValue>(GetValue(St, E));
}
-
ValueState
ValueStateManager::SetValue(ValueState St, Expr* E, bool isBlkExpr,
const RValue& V) {
public:
ValueStateManager(ASTContext& Ctx, llvm::BumpPtrAllocator& alloc)
- : ValMgr(Ctx, alloc), Alloc(alloc) {}
+ : ISetFactory(alloc),
+ EXFactory(alloc),
+ VBFactory(alloc),
+ CNEFactory(alloc),
+ CEFactory(alloc),
+ ValMgr(Ctx, alloc), Alloc(alloc) {}
ValueState getInitialState();