Added more assertions and checks in transfer function logic to check for
UninitializedVals and UnknownVals.
llvm-svn: 47288
diff --git a/clang/Analysis/ValueState.cpp b/clang/Analysis/ValueState.cpp
index 9b2ed96..016b070 100644
--- a/clang/Analysis/ValueState.cpp
+++ b/clang/Analysis/ValueState.cpp
@@ -129,6 +129,8 @@
if (isa<UnknownVal>(LV))
return UnknownVal();
+ assert (!isa<UninitializedVal>(LV));
+
switch (LV.getSubKind()) {
case lval::DeclValKind: {
ValueState::VarBindingsTy::TreeTy* T =
@@ -327,6 +329,9 @@
ValueState
ValueStateManager::SetValue(ValueState St, const LValue& LV, const RValue& V) {
+ assert (!isa<UnknownVal>(LV));
+ assert (!isa<UninitializedVal>(LV));
+
switch (LV.getSubKind()) {
case lval::DeclValKind:
return V.isKnown() // FIXME: Have DeclVal only contain VarDecl