Small fixes to shore up overhauling of transfer function logic for '&&' and '||.
llvm-svn: 47620
diff --git a/clang/Analysis/ValueState.cpp b/clang/Analysis/ValueState.cpp
index 7f3e733..b892fd6 100644
--- a/clang/Analysis/ValueState.cpp
+++ b/clang/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: {