summaryrefslogtreecommitdiffstats
path: root/clang/lib/Checker/SymbolManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [analyzer] Refactoring: lib/Checker -> lib/GR and libclangChecker -> ↵Argyrios Kyrtzidis2010-12-221-342/+0
| | | | | | libclangGRCore llvm-svn: 122421
* [analyzer] Refactoring: include/clang/Checker -> include/clang/GRArgyrios Kyrtzidis2010-12-221-2/+2
| | | | llvm-svn: 122420
* Enabled relaxed LiveVariables analysis in the path-sensitive engine to ↵Tom Care2010-08-271-2/+4
| | | | | | | | | | | increase the coverage of bugs. Primarily affects IdempotentOperationChecker. - Migrated a temporarily separated test back to its original file (bug has been fixed, null-deref-ps-temp.c -> null-deref-ps.c) - Changed SymbolManager to use relaxed LiveVariables - Updated several test cases that the IdempotentOperationChecker class now flags - Added test case to test relaxed LiveVariables use by the IdempotentOperationChecker llvm-svn: 112312
* GCC didn't care for my attempt at API compatibility, so brute-force everythingJohn McCall2010-08-251-16/+16
| | | | | | to the new constants. llvm-svn: 112047
* Add a new metadata symbol type for checkers to use. Metadata symbols must be ↵Jordy Rose2010-08-141-9/+77
| | | | | | associated with a region and will be collected if the region dies or its checker fails to mark it as in use. llvm-svn: 111076
* MemRegion can refer to ASTContext without external help.Zhongxing Xu2010-08-111-2/+2
| | | | llvm-svn: 110784
* Change SymbolManager::canSymbolicate() to return true for RecordTypes.Ted Kremenek2010-07-291-1/+10
| | | | llvm-svn: 109709
* Add a new symbol type, SymbolExtent, to represent the extents of memory ↵Jordy Rose2010-07-041-1/+33
| | | | | | | | | | regions that may not be known at compile-time (such as those created by malloc). This replaces the old setExtent/getExtent API on Store, which used the GRState's GDM to store SVals. Also adds a getKnownValue() method to SValuator, which gets the integer value of an SVal if it is known to only have one possible value. There are more places in the code that could be using this, but in general we want to be dealing entirely in SVals, so its usefulness is limited. The only visible functionality change is that extents are now honored for any DeclRegion, such as fields and Objective-C ivars, rather than just variables. This shows up in bounds-checking and cast-size-checking. llvm-svn: 107577
* Add an ivar to SymbolReaper for the current statement, and then stop passing ↵Jordy Rose2010-07-011-2/+2
| | | | | | the current statement around everywhere. Preparation for symbolic extents. llvm-svn: 107422
* Checker: random include cleanup.Benjamin Kramer2010-03-271-1/+1
| | | | llvm-svn: 99731
* Remove reference to AnalysisContext in Environment. We already have ↵Zhongxing Xu2010-03-051-3/+7
| | | | | | | | LocationContext information in ExplodedNode. llvm-svn: 97785
* Since now we store the cast type with an ElementRegion, there isZhongxing Xu2010-03-011-10/+4
| | | | | | no need to store a type with SymbolRegionValue. llvm-svn: 97437
* In symbol reaper, a variable is live if its stack frame is the parent of the Zhongxing Xu2010-02-171-1/+6
| | | | | | | | current stack frame. When leaving a callee, remove all bindings belonging to that callee. llvm-svn: 96473
* Split libAnalysis into two libraries: libAnalysis and libChecker.Ted Kremenek2010-01-251-0/+228
(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
OpenPOWER on IntegriCloud