diff options
Diffstat (limited to 'Analysis/ValueState.cpp')
-rw-r--r-- | Analysis/ValueState.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Analysis/ValueState.cpp b/Analysis/ValueState.cpp index db2ef6badc..e175a1cd8f 100644 --- a/Analysis/ValueState.cpp +++ b/Analysis/ValueState.cpp @@ -94,8 +94,15 @@ ValueStateManager::RemoveDeadBindings(ValueState St, Stmt* Loc, Marked.insert(V); if (V->getType()->isPointerType()) { - const LVal& LV = - cast<LVal>(GetRVal(St, lval::DeclVal(cast<VarDecl>(V)))); + + RVal X = GetRVal(St, lval::DeclVal(cast<VarDecl>(V))); + + assert (!X.isUnknown()); + + if (X.isUninit()) + continue; + + LVal LV = cast<LVal>(X); for (RVal::symbol_iterator SI = LV.symbol_begin(), SE = LV.symbol_end(); SI != SE; ++SI) { |