aboutsummaryrefslogtreecommitdiff
path: root/Analysis/ValueState.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-02-26 19:40:44 +0000
committerTed Kremenek <kremenek@apple.com>2008-02-26 19:40:44 +0000
commit58b3321009b3f750fb4587b12c2024bb77e6ebf0 (patch)
treee1ba6c9d65ed921486ce71f911d56d4426c152c6 /Analysis/ValueState.cpp
parent7695f70bbd3e4d42adaa1ef2ff5e1b9ab3d9c345 (diff)
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
Diffstat (limited to 'Analysis/ValueState.cpp')
-rw-r--r--Analysis/ValueState.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/Analysis/ValueState.cpp b/Analysis/ValueState.cpp
index 7f3e733dbb..b892fd6852 100644
--- a/Analysis/ValueState.cpp
+++ b/Analysis/ValueState.cpp
@@ -336,12 +336,16 @@ RVal ValueStateManager::GetRVal(ValueState St, Expr* E) {
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: {