RemoveDeadBindings should now check for UninitalizedVal, as it is a now
an error to cast it to LVal.
llvm-svn: 47450
diff --git a/clang/Analysis/ValueState.cpp b/clang/Analysis/ValueState.cpp
index db2ef6b..e175a1c 100644
--- a/clang/Analysis/ValueState.cpp
+++ b/clang/Analysis/ValueState.cpp
@@ -94,8 +94,15 @@
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) {