Small fixes to shore up overhauling of transfer function logic for '&&' and '||.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47620 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/ValueState.cpp b/Analysis/ValueState.cpp
index 7f3e733..b892fd6 100644
--- a/Analysis/ValueState.cpp
+++ b/Analysis/ValueState.cpp
@@ -336,12 +336,16 @@
   
   ValueState::ExprBindingsTy::TreeTy* T = St->SubExprBindings.SlimFind(E);
   
-  return T ? T->getValue().second : GetBlkExprRVal(St, E);
+  if (T)
+    return T->getValue().second;
+  
+  T = St->BlockExprBindings.SlimFind(E);
+  return T ? T->getValue().second : UnknownVal();
 }
 
 RVal ValueStateManager::GetBlkExprRVal(ValueState St, Expr* E) {
   
-  assert (!isa<ParenExpr>(E));
+  E = E->IgnoreParens();
   
   switch (E->getStmtClass()) {
     case Stmt::CharacterLiteralClass: {