forked from OSchip/llvm-project
When processing "release", "retain", and "autorelease" messages return the
lval passed as an argument. Fix: Inverted diagnostic messages. llvm-svn: 50513
This commit is contained in:
parent
4828aa3152
commit
9f696852c4
|
@ -396,11 +396,17 @@ protected:
|
|||
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);
|
||||
|
|
|
@ -1050,7 +1050,7 @@ bool CFRefCount::EvalObjCMessageExprAux(ExplodedNodeSet<ValueState>& Dst,
|
|||
// 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)
|
||||
|
@ -1509,13 +1509,13 @@ std::pair<const char**,const char**> CFRefReport::getExtraDescriptiveText() {
|
|||
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:
|
||||
|
|
Loading…
Reference in New Issue