diff options
Diffstat (limited to 'clang/lib/Analysis/SVals.cpp')
-rw-r--r-- | clang/lib/Analysis/SVals.cpp | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/clang/lib/Analysis/SVals.cpp b/clang/lib/Analysis/SVals.cpp index 9225f994d3f..850e65e3b63 100644 --- a/clang/lib/Analysis/SVals.cpp +++ b/clang/lib/Analysis/SVals.cpp @@ -201,109 +201,6 @@ SVal loc::ConcreteInt::EvalBinOp(BasicValueFactory& BasicVals, return UndefinedVal(); } -NonLoc Loc::EQ(SymbolManager& SymMgr, const Loc& R) const { - - switch (getSubKind()) { - default: - assert(false && "EQ not implemented for this Loc."); - break; - - case loc::ConcreteIntKind: - if (isa<loc::ConcreteInt>(R)) { - bool b = cast<loc::ConcreteInt>(this)->getValue() == - cast<loc::ConcreteInt>(R).getValue(); - - return NonLoc::MakeIntTruthVal(SymMgr.getBasicVals(), b); - } - else if (isa<loc::SymbolVal>(R)) { - const SymIntExpr *SE = - SymMgr.getSymIntExpr(cast<loc::SymbolVal>(R).getSymbol(), - BinaryOperator::EQ, - cast<loc::ConcreteInt>(this)->getValue(), - SymMgr.getContext().IntTy); - - return nonloc::SymExprVal(SE); - } - - break; - - case loc::SymbolValKind: { - if (isa<loc::ConcreteInt>(R)) { - const SymIntExpr *SE = - SymMgr.getSymIntExpr(cast<loc::SymbolVal>(this)->getSymbol(), - BinaryOperator::EQ, - cast<loc::ConcreteInt>(R).getValue(), - SymMgr.getContext().IntTy); - - return nonloc::SymExprVal(SE); - } - - assert (!isa<loc::SymbolVal>(R) && "FIXME: Implement unification."); - break; - } - - case loc::MemRegionKind: - if (isa<loc::MemRegionVal>(R)) { - bool b = cast<loc::MemRegionVal>(*this) == cast<loc::MemRegionVal>(R); - return NonLoc::MakeIntTruthVal(SymMgr.getBasicVals(), b); - } - - break; - } - - return NonLoc::MakeIntTruthVal(SymMgr.getBasicVals(), false); -} - -NonLoc Loc::NE(SymbolManager& SymMgr, const Loc& R) const { - switch (getSubKind()) { - default: - assert(false && "NE not implemented for this Loc."); - break; - - case loc::ConcreteIntKind: - if (isa<loc::ConcreteInt>(R)) { - bool b = cast<loc::ConcreteInt>(this)->getValue() != - cast<loc::ConcreteInt>(R).getValue(); - - return NonLoc::MakeIntTruthVal(SymMgr.getBasicVals(), b); - } - else if (isa<loc::SymbolVal>(R)) { - const SymIntExpr *SE = - SymMgr.getSymIntExpr(cast<loc::SymbolVal>(R).getSymbol(), - BinaryOperator::NE, - cast<loc::ConcreteInt>(this)->getValue(), - SymMgr.getContext().IntTy); - return nonloc::SymExprVal(SE); - } - break; - - case loc::SymbolValKind: { - if (isa<loc::ConcreteInt>(R)) { - const SymIntExpr *SE = - SymMgr.getSymIntExpr(cast<loc::SymbolVal>(this)->getSymbol(), - BinaryOperator::NE, - cast<loc::ConcreteInt>(R).getValue(), - SymMgr.getContext().IntTy); - - return nonloc::SymExprVal(SE); - } - - assert (!isa<loc::SymbolVal>(R) && "FIXME: Implement sym !=."); - break; - } - - case loc::MemRegionKind: - if (isa<loc::MemRegionVal>(R)) { - bool b = cast<loc::MemRegionVal>(*this)==cast<loc::MemRegionVal>(R); - return NonLoc::MakeIntTruthVal(SymMgr.getBasicVals(), b); - } - - break; - } - - return NonLoc::MakeIntTruthVal(SymMgr.getBasicVals(), true); -} - //===----------------------------------------------------------------------===// // Utility methods for constructing Non-Locs. //===----------------------------------------------------------------------===// |