When processing "release", "retain", and "autorelease" messages return the
lval passed as an argument.
Fix: Inverted diagnostic messages.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50513 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index b1936fd..761182d 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -1050,7 +1050,7 @@
// 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 @@
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: