RemoveDeadBindings should now check for UninitalizedVal, as it is a now
an error to cast it to LVal.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47450 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/ValueState.cpp b/Analysis/ValueState.cpp
index db2ef6b..e175a1c 100644
--- a/Analysis/ValueState.cpp
+++ b/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) {