summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRExprEngineInternalChecks.h
Commit message (Collapse)AuthorAgeFilesLines
* Split libAnalysis into two libraries: libAnalysis and libChecker.Ted Kremenek2010-01-251-44/+0
| | | | | | | | | | | | | | | | | | | | | | | | | (1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives, and inexpensive flow-sensitive analyses (e.g. LiveVariables). (2) libChecker contains the guts of the static analyzer, incuding the path-sensitive analysis engine and domain-specific checks. Now any clients that want to use the frontend to build their own tools don't need to link in the entire static analyzer. This change exposes various obvious cleanups that can be made to the layout of files and headers in libChecker. More changes pending. :) This change also exposed a layering violation between AnalysisContext and MemRegion. BlockInvocationContext shouldn't explicitly know about BlockDataRegions. For now I've removed the BlockDataRegion* from BlockInvocationContext (removing context-sensitivity; although this wasn't used yet). We need to have a better way to extend BlockInvocationContext (and any LocationContext) to add context-sensitivty. llvm-svn: 94406
* Refactor OSAtomic evaluation logic into OSAtomicChecker.Zhongxing Xu2009-12-091-1/+1
| | | | llvm-svn: 90968
* Refactor builtin function evaluation into a checker.Zhongxing Xu2009-12-081-0/+1
| | | | llvm-svn: 90847
* Add EvalCallExpr interface to checker, and migrate the no-return functionZhongxing Xu2009-12-071-0/+2
| | | | | | | | | handler to this interface. GRExprEngine::CheckerEvalCall() will return true if one of the checkers has processed the node. In the future this might return void when we have some default checker. llvm-svn: 90755
* Refactor undefined result checker. This is the last one.Zhongxing Xu2009-11-241-0/+1
| | | | llvm-svn: 89750
* rename UndefinedArgChecker to CallAndMessageChecker.Zhongxing Xu2009-11-241-1/+1
| | | | llvm-svn: 89735
* Initial refactor of UndefBranchChecker. We still use GRBranchNodeBuilderZhongxing Xu2009-11-231-0/+1
| | | | | | in the checker directly. But I don't have a better approach for now. llvm-svn: 89640
* Remove UndefinedAssignmentChecker's header.Zhongxing Xu2009-11-221-0/+1
| | | | llvm-svn: 89585
* Pull BadCallChecker int UndefinedArgChecker, and have UndefinedArgChecker ↵Ted Kremenek2009-11-211-1/+0
| | | | | | also handled undefined receivers in message expressions. llvm-svn: 89524
* Add undefined array subscript checker.Zhongxing Xu2009-11-111-0/+1
| | | | llvm-svn: 86837
* Reimplement out-of-bound array access checker with the new checker interface.Zhongxing Xu2009-11-111-0/+1
| | | | | | Now only one test case is XFAIL'ed. llvm-svn: 86834
* Remove public headers for UndefinedArgChecker, AttrNonNullChecker, and ↵Ted Kremenek2009-11-111-0/+3
| | | | | | BadCallChecker, making their implementations completely private. llvm-svn: 86809
* Refactor DereferenceChecker to use only the new Checker API instead ofTed Kremenek2009-11-111-0/+2
| | | | | | | | | | the old builder API. This percolated a bunch of changes up to the Checker class (where CheckLocation has been renamed VisitLocation) and GRExprEngine. ProgramPoint now has the notion of a "LocationCheck" point (with PreLoad and PreStore respectively), and a bunch of the old ProgramPoints that are no longer used have been removed. llvm-svn: 86798
* Add check for pointer arithmetic on non-array variables.Zhongxing Xu2009-11-091-0/+1
| | | | llvm-svn: 86538
* Add checker for CWE-588: Attempt to Access Child of a Non-structure Pointer.Zhongxing Xu2009-11-091-0/+1
| | | | llvm-svn: 86529
* Add checker for CWE-587: Assignment of a Fixed Address to a Pointer.Zhongxing Xu2009-11-091-1/+2
| | | | llvm-svn: 86523
* Add checker for CWE-469: Use of Pointer Subtraction to Determine Size. ThisZhongxing Xu2009-11-091-1/+1
| | | | | | | checker does not build sink nodes. Because svaluator computes an unknown value for the subtraction now. llvm-svn: 86517
* Make the VLASizeChecker implementation private, and its creation only known ↵Ted Kremenek2009-11-061-0/+1
| | | | | | to GRExprEngineInternalChecks.cpp. llvm-svn: 86292
* Make the implementation of DivZeroChecker private.Ted Kremenek2009-11-061-2/+3
| | | | llvm-svn: 86288
* Add a checker for CWE-466: Return of Pointer Value Outside of Expected Range.Zhongxing Xu2009-11-061-0/+1
| | | | llvm-svn: 86252
* static analyzer: refactor checking logic for returning the address of a ↵Ted Kremenek2009-11-061-0/+26
stack variable or a garbage value into their own respective subclasses of Checker (and put them in .cpp files where their implementation details are hidden from GRExprEngine). llvm-svn: 86215
OpenPOWER on IntegriCloud