summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/BasicObjCFoundationChecks.h
Commit message (Collapse)AuthorAgeFilesLines
* Split libAnalysis into two libraries: libAnalysis and libChecker.Ted Kremenek2010-01-251-41/+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
* Remove unneeded includes.Benjamin Kramer2009-11-281-10/+2
| | | | llvm-svn: 90032
* Implement: <rdar://problem/6250216> Warn against using -[NSAutoreleasePool ↵Ted Kremenek2009-11-031-0/+1
| | | | | | release] in GC mode llvm-svn: 85887
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-7/+7
| | | | llvm-svn: 81346
* Tie the local check NSErrorCheck to a Decl to pave the wayZhongxing Xu2009-08-211-1/+1
| | | | | | to untie the ExplodedGraph from a specific Decl. llvm-svn: 79588
* Add basic checking for passing NULL to CFRetain/CFRelease, since those functionsTed Kremenek2009-07-141-2/+5
| | | | | | | are not explicitly marked as not accepting NULL pointers. This check illustrates how we need more refactoring in the custom-check logic. llvm-svn: 75570
* Move clients over from using GRStateManager::BindXXX and friends toTed Kremenek2009-06-181-2/+0
| | | | | | GRState->bindXXX and friends (and constify some arguments along the way). llvm-svn: 73740
* Overhaul BugReporter interface and implementation. The new interface cleans upTed Kremenek2009-02-041-4/+7
| | | | | | | | | | | | | | | | | | | | | the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes, and BugTypes are owned by the BugReporter object. The major functionality change in this patch is that reports are not immediately emitted by a call to BugReporter::EmitWarning (now called EmitReport), but instead of queued up in report "equivalence classes". When BugReporter::FlushReports() is called, it emits one diagnostic per report equivalence class. This provides a nice cleanup with the caching of reports as well as enables the BugReporter engine to select the "best" path for reporting a path-sensitive bug based on all the locations in the ExplodedGraph that the same bug could occur. Along with this patch, Leaks are now coalesced into a common equivalence class by their allocation site, and the "summary" diagnostic for leaks now reports the allocation site as the location of the bug (this may later be augmented to also provide an example location where the leak occurs). llvm-svn: 63796
* Change implementation of NSError** coding-style check to be invoked at the ↵Ted Kremenek2008-09-181-2/+4
| | | | | | end of the retain/release analysis. llvm-svn: 56312
* Rename ValueState -> GRState.Ted Kremenek2008-08-131-4/+4
| | | | | | Rename ValueStateManager -> GRStateManager. llvm-svn: 54721
* Remove unused class AnnotatedPath.Ted Kremenek2008-07-101-1/+0
| | | | llvm-svn: 53413
* Added a simple static analysis check to look for improper uses of ↵Ted Kremenek2008-06-261-0/+4
| | | | | | CFCreateNumber. llvm-svn: 52799
* Add creation of BasicObjCFoundationChecks when running GRSimpleVals from the ↵Ted Kremenek2008-03-271-0/+39
driver. llvm-svn: 48886
OpenPOWER on IntegriCloud