summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
diff options
context:
space:
mode:
authorAnton Yartsev <anton.yartsev@gmail.com>2016-12-23 04:09:18 +0000
committerAnton Yartsev <anton.yartsev@gmail.com>2016-12-23 04:09:18 +0000
commitb2a5eb87f83bed3342e90c1ba50194953e73242a (patch)
tree650265d038b80180ab76abd71a2285cc7b675b78 /clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
parent9f926f70c1460b7c181e02c79075aa8ebd2cbcfa (diff)
downloadbcm5719-llvm-b2a5eb87f83bed3342e90c1ba50194953e73242a.tar.gz
bcm5719-llvm-b2a5eb87f83bed3342e90c1ba50194953e73242a.zip
Revert changes made by r290413 until regression is fixed.
llvm-svn: 290415
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp16
1 files changed, 1 insertions, 15 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp b/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
index ef2fcefb052..c5e0f9b8626 100644
--- a/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
+++ b/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
@@ -254,21 +254,6 @@ ProgramStateRef SimpleConstraintManager::assumeSymRel(ProgramStateRef State,
assert(BinaryOperator::isComparisonOp(Op) &&
"Non-comparison ops should be rewritten as comparisons to zero.");
- SymbolRef Sym = LHS;
-
- // Simplification: translate an assume of a constraint of the form
- // "(exp comparison_op expr) != 0" to true into an assume of
- // "exp comparison_op expr" to true. (And similarly, an assume of the form
- // "(exp comparison_op expr) == 0" to true into an assume of
- // "exp comparison_op expr" to false.)
- if (Int == 0 && (Op == BO_EQ || Op == BO_NE)) {
- if (const BinarySymExpr *SE = dyn_cast<BinarySymExpr>(Sym)) {
- BinaryOperator::Opcode Op = SE->getOpcode();
- if (BinaryOperator::isComparisonOp(Op))
- return assume(State, nonloc::SymbolVal(Sym), (Op == BO_NE ? true : false));
- }
- }
-
// Get the type used for calculating wraparound.
BasicValueFactory &BVF = getBasicVals();
APSIntType WraparoundType = BVF.getAPSIntType(LHS->getType());
@@ -280,6 +265,7 @@ ProgramStateRef SimpleConstraintManager::assumeSymRel(ProgramStateRef State,
// x < 4 has the solution [0, 3]. x+2 < 4 has the solution [0-2, 3-2], which
// in modular arithmetic is [0, 1] U [UINT_MAX-1, UINT_MAX]. It's up to
// the subclasses of SimpleConstraintManager to handle the adjustment.
+ SymbolRef Sym = LHS;
llvm::APSInt Adjustment = WraparoundType.getZeroValue();
computeAdjustment(Sym, Adjustment);
OpenPOWER on IntegriCloud