Added "assumption" logic for lval::FuncVal and lval::GotoLabel, and simplified
assumption logic for lval::DeclVal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47466 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GRSimpleVals.cpp b/Analysis/GRSimpleVals.cpp
index 02df7a5..775d099 100644
--- a/Analysis/GRSimpleVals.cpp
+++ b/Analysis/GRSimpleVals.cpp
@@ -233,13 +233,9 @@
}
case lval::DeclValKind:
-
- if (isa<lval::DeclVal>(R)) {
- bool b = cast<lval::DeclVal>(L) == cast<lval::DeclVal>(R);
- return NonLVal::MakeIntTruthVal(ValMgr, b);
- }
-
- break;
+ case lval::FuncValKind:
+ case lval::GotoLabelKind:
+ return NonLVal::MakeIntTruthVal(ValMgr, L == R);
}
return NonLVal::MakeIntTruthVal(ValMgr, false);
@@ -288,12 +284,9 @@
}
case lval::DeclValKind:
- if (isa<lval::DeclVal>(R)) {
- bool b = cast<lval::DeclVal>(L) == cast<lval::DeclVal>(R);
- return NonLVal::MakeIntTruthVal(ValMgr, b);
- }
-
- break;
+ case lval::FuncValKind:
+ case lval::GotoLabelKind:
+ return NonLVal::MakeIntTruthVal(ValMgr, L != R);
}
return NonLVal::MakeIntTruthVal(ValMgr, true);