summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/SimpleConstraintManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove references to 'Checker' and 'GRTransferFuncs' fromTed Kremenek2010-01-051-39/+8
| | | | | | | | | | | | GRStateManager. Having these references was an abstraction violation, as they really should only be known about GRExprEngine. This change required adding a new 'ProcessAssume' callback in GRSubEngine. GRExprEngine implements this callback by calling 'EvalAssume' on all registered Checker objects as well as the registered GRTransferFunc object. llvm-svn: 92549
* Let constraint manager inform checkers that some assumption logic has happend.Zhongxing Xu2009-12-311-4/+24
| | | | | | | | | Add new states for symbolic regions tracked by malloc checker. This enables us to do malloc checking more accurately. See test case. Based on Lei Zhang's patch and discussion. llvm-svn: 92342
* Fix <rdar://problem/7249327> by allowing silent conversions between signed ↵Ted Kremenek2009-09-251-2/+13
| | | | | | and unsigned integer values for symbolic values. This is an intermediate solution (i.e. hack) until we support extension/truncation of symbolic integers. llvm-svn: 82737
* Introduce "DefinedOrUnknownSVal" into the SVal class hierarchy, providing a wayTed Kremenek2009-09-111-7/+4
| | | | | | | | | | | | to statically type various methods in SValuator/GRState as required either a defined value or a defined-but-possibly-unknown value. This leads to various logic cleanups in GRExprEngine, and lets the compiler enforce via type checking our assumptions about what symbolic values are possibly undefined and what are not. Along the way, clean up some of the static analyzer diagnostics regarding the uses of uninitialized values. llvm-svn: 81579
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-20/+20
| | | | llvm-svn: 81346
* Remove GRStateManager& field from SimpleConstraintManager.Ted Kremenek2009-06-181-1/+1
| | | | llvm-svn: 73735
* libAnalysis:Ted Kremenek2009-06-181-97/+86
| | | | | | | | | - Remove the 'isFeasible' flag from all uses of 'Assume'. - Remove the 'Assume' methods from GRStateManager. Now the only way to create a new GRState with an assumption is to use the new 'assume' methods in GRState. llvm-svn: 73731
* Remove loc::FuncVal.Zhongxing Xu2009-04-201-1/+0
| | | | llvm-svn: 69577
* Finally nuke loc::SymbolVal.Zhongxing Xu2009-04-101-11/+8
| | | | llvm-svn: 68771
* analyzer infrastructure: make a bunch of changes to symbolic expressions thatTed Kremenek2009-03-261-37/+57
| | | | | | | | | | | | | | | | Zhongxing and I discussed by email. Main changes: - Removed SymIntConstraintVal and SymIntConstraint - Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr - Added nonloc::SymExprVal to wrap SymExpr - SymbolRef is now just a typedef of 'const SymbolData*' - Bunch of minor code cleanups in how some methods were invoked (no functionality change) This changes are part of a long-term plan to have full symbolic expression trees. This will be useful for lazily evaluating complicated expressions. llvm-svn: 67731
* This patch adds two more SymbolData subclasses: SymIntExpr and SymSymExpr, forZhongxing Xu2009-03-251-22/+11
| | | | | | | | representing symbolic expressions like 'x'+3 and 'x'+'y'. The design is subjected to change later when we fix the class hierarchy of symbolic expressions. llvm-svn: 67678
* analyzer: Provide temporary workaround for false positive reported byTed Kremenek2009-03-231-0/+11
| | | | | | | <rdar://problem/6704930> involving SimpleConstraintManager not reasoning well about symbolic constraint values involving arithmetic operators. llvm-svn: 67534
* SimpleConstraintManager doesn't reason about bitwise-constraints on symbolicTed Kremenek2009-03-111-0/+13
| | | | | | | values. Indicating this in 'canReasonAbout' allows GRExprEngine to recover path-sensitivity in some cases. llvm-svn: 66628
* Added method "canReasonAbout" to ConstraintManager. This method returns true ifTed Kremenek2009-03-111-0/+4
| | | | | | a ConstraintManager can usefully reason about the given SVal. llvm-svn: 66624
* Patch by Ben Laurie:Ted Kremenek2009-02-141-0/+230
ConstraintManager: - constify getSymVal() BasicConstraintManager: - Pull out logic that would be common to ConstraintManagers of a similar nature and put them in a parent class called 'SimpleConstraintManager'. RangeConstraintManager: - Added a new prototype ConstraintManager to track ranges of variables! This ConstraintManager keeps tracks of ranges of concrete integers that a symbolic integer may have. AnalysisConsumer: - Add driver option to use RangeConstraintManager with GRExprEngine-based analyses. llvm-svn: 64558
OpenPOWER on IntegriCloud