summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-08-21 20:52:19 +0000
committerJordan Rose <jordan_rose@apple.com>2012-08-21 20:52:19 +0000
commit81125c449708be9fa520ee6e823dd29f9023e930 (patch)
tree090d996d97409a9e1dfcae0bf8ad7d24340618cc /clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
parentda32944cac23abc9d4f4c2766d70c2fda38b56da (diff)
downloadbcm5719-llvm-81125c449708be9fa520ee6e823dd29f9023e930.tar.gz
bcm5719-llvm-81125c449708be9fa520ee6e823dd29f9023e930.zip
[analyzer] Push "references are non-null" knowledge up to the common parent.
This reduces duplication across the Basic and Range constraint managers, and keeps their internals free of dealing with the semantics of C++. It's still a little unfortunate that the constraint manager is dealing with this at all, but this is pretty much the only place to put it so that it will apply to all symbolic values, even when embedded in larger expressions. llvm-svn: 162313
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp12
1 files changed, 1 insertions, 11 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp b/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
index 2b883cf9b9b..550404a5107 100644
--- a/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
+++ b/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
@@ -380,17 +380,7 @@ RangeConstraintManager::GetRange(ProgramStateRef state, SymbolRef sym) {
// given symbol type.
BasicValueFactory &BV = getBasicVals();
QualType T = sym->getType(BV.getContext());
-
- RangeSet Result(F, BV.getMinValue(T), BV.getMaxValue(T));
-
- // Special case: references are known to be non-zero.
- if (T->isReferenceType()) {
- APSIntType IntType = BV.getAPSIntType(T);
- Result = Result.Intersect(BV, F, ++IntType.getZeroValue(),
- --IntType.getZeroValue());
- }
-
- return Result;
+ return RangeSet(F, BV.getMinValue(T), BV.getMaxValue(T));
}
//===------------------------------------------------------------------------===
OpenPOWER on IntegriCloud