Removed bogus assertions regard LValues binding to UnknownVal; they can
do so implicitly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47447 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GRExprEngine.cpp b/Analysis/GRExprEngine.cpp
index c326df5..16361c6 100644
--- a/Analysis/GRExprEngine.cpp
+++ b/Analysis/GRExprEngine.cpp
@@ -685,8 +685,10 @@
       LVal SubLV = cast<LVal>(SubV); 
       RVal V  = GetRVal(St, SubLV, U->getType());
       
-      // An LVal should never bind to UnknownVal.      
-      assert (!V.isUnknown());
+      if (V.isUnknown()) {
+        Dst.Add(N1);
+        continue;
+      }
 
       // Propagate uninitialized values.      
       if (V.isUninit()) {
@@ -925,8 +927,10 @@
           
           // Propagate unknown values.
           
-          assert (!V.isUnknown() &&
-                  "An LVal should never bind to UnknownVal");
+          if (V.isUnknown()) {
+            Dst.Add(N2);
+            continue;
+          }
           
           if (RightV.isUnknown()) {
             St = SetRVal(SetRVal(St, LeftLV, RightV), B, RightV);