return N == EntryNode ? CleanedState : N->getState();
}
+public:
+
+ // FIXME: Maybe make these accesible only within the StmtBuilder?
+
ValueState* SetRVal(ValueState* St, Expr* Ex, RVal V);
ValueState* SetRVal(ValueState* St, const Expr* Ex, RVal V) {
return SetRVal(St, const_cast<Expr*>(Ex), V);
}
+
+protected:
ValueState* SetBlkExprRVal(ValueState* St, Expr* Ex, RVal V) {
return StateMgr.SetRVal(St, Ex, V, true, false);
// Create a new state with the updated bindings.
ValueState StVals = *St;
SetRefBindings(StVals, B);
- St = StateMgr.getPersistentState(StVals);
+ St = Eng.SetRVal(StateMgr.getPersistentState(StVals), ME, V);
// Create an error node if it exists.
if (hasErr)
switch (TF.getLangOptions().getGCMode()) {
default:
assert(false);
+
+ case LangOptions::GCOnly:
+ assert (TF.isGCEnabled());
+ return std::make_pair(&Msgs[0], &Msgs[0]+1);
case LangOptions::NonGC:
assert (!TF.isGCEnabled());
- return std::make_pair(&Msgs[0], &Msgs[0]+1);
-
- case LangOptions::GCOnly:
- assert (TF.isGCEnabled());
return std::make_pair(&Msgs[1], &Msgs[1]+1);
case LangOptions::HybridGC: