summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CFRefCount.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* When stripping element regions for invalidating region values, treat ↵Ted Kremenek2009-05-111-4/+7
| | | | | | FieldRegions and ObjCIvarRegions as "base" regions in addition to VarRegions. llvm-svn: 71488
* Fix regression reported in <rdar://problem/6866843>. The analyzer should ↵Ted Kremenek2009-05-111-2/+2
| | | | | | extend the lifetime of an object stored to a container. llvm-svn: 71452
* Fix a bug found by Thomas Clement where 'return [[[NSString alloc] init] ↵Ted Kremenek2009-05-111-2/+10
| | | | | | autorelease]' would emit a false 'too many overreleases' error. llvm-svn: 71432
* TypedRegion is a too general assumption. Usually we only want to invalidateZhongxing Xu2009-05-111-3/+3
| | | | | | the VarRegion as a super region of an ElementRegion. llvm-svn: 71431
* Add special warning about returning a retained object where a GC'ed object ↵Ted Kremenek2009-05-101-5/+7
| | | | | | is expected. llvm-svn: 71397
* retain/release checker: Flag a warning for non-owned objects returnedTed Kremenek2009-05-101-13/+85
| | | | | | | | where an owned one is expected. Also add preliminary checking for returning a positive retain count object in GC mode where an owned GC object is expected. llvm-svn: 71388
* analyzer:Ted Kremenek2009-05-101-33/+48
| | | | | | | | - Improve -autorelease diagnostics. - Improve VLA diagnostics. - Use "short description" for bug when outputting to TextDiagnostics llvm-svn: 71383
* As discussed with Ted, rename TypedRegion::getObjectType() to Zhongxing Xu2009-05-091-1/+1
| | | | | | TypedRegion::getValueType(). llvm-svn: 71321
* Add back analyzer support for ns_returns_retained and cf_returns_retained.Ted Kremenek2009-05-091-1/+51
| | | | llvm-svn: 71309
* It lives! The retain/release checker now tracks objects that are sentTed Kremenek2009-05-091-4/+5
| | | | | | 'autorelease'. llvm-svn: 71307
* rename: MemRegion:Zhongxing Xu2009-05-091-1/+1
| | | | | | | | | RValueType => ObjectType LValueType => LocationType No functionality change. llvm-svn: 71304
* More hacking on autorelease errors. We now can emit basic errors (disabled forTed Kremenek2009-05-091-3/+14
| | | | | | now until ready). llvm-svn: 71303
* Put most of the boilerplate logic in place for reporting autorelease errors.Ted Kremenek2009-05-091-19/+82
| | | | llvm-svn: 71301
* retain/release checker: Add stub for HandleAutoreleaseCounts.Ted Kremenek2009-05-081-9/+56
| | | | llvm-svn: 71290
* retain/release checker: Refactor error-reporting code in EvalDeadSymbols andTed Kremenek2009-05-081-108/+98
| | | | | | EvalEndPath. This sets the stage for handling autorelease counts. llvm-svn: 71283
* retain checker: Track the number of times a tracked object is sentTed Kremenek2009-05-081-15/+37
| | | | | | 'autorelease'. This isn't used yet to flag errors. llvm-svn: 71244
* Remove experimental ownership attributes from Clang.Ted Kremenek2009-05-081-93/+0
| | | | llvm-svn: 71216
* Minor code cleanup in retain/release checker in preparation for someTed Kremenek2009-05-071-22/+14
| | | | | | | other changes. Instead of repeatedly checking for GC mode when getting the return effect, just do this computation once. llvm-svn: 71193
* Refactor BugReporter interface to have a new 'BugReporterContext' andTed Kremenek2009-05-061-28/+25
| | | | | | | | | | | 'BugReporterVisitor'. This simplifies callbacks from BugReporter to BugReports (via VisitNode). It also lays the foundation for arbitrary visitor "call backs" that can be registered to a BugReporterContext as a PathDiagnostic is constructed. These call backs can help operate as separate "experts" that can work on constructed pieces of a PathDiagnostic for which they possess special knowledge. llvm-svn: 71121
* Fix analyzer regression reported in PR 4164:Ted Kremenek2009-05-061-1/+23
| | | | | | | | | | - Update the old StoreManager::CastRegion to strip off 'ElementRegions' when casting to void* (Zhongxing: please validate) - Pass-by-reference argument invalidation logic in CFRefCount.cpp: - Strip ElementRegions when the ElementRegion is just a 'raw data' view on top of the underlying typed region. llvm-svn: 71094
* Implement attribute 'ns_autorelease'.Ted Kremenek2009-05-051-20/+27
| | | | llvm-svn: 70990
* Implement attribute 'cf_returns_owned' (mirrors 'ns_returns_owned').Ted Kremenek2009-05-051-0/+6
| | | | llvm-svn: 70952
* Remove experimental attribute 'ns_ownership_make_collectable.'Ted Kremenek2009-05-041-2/+0
| | | | llvm-svn: 70940
* Rename attributes 'objc_ownership...' to 'ns_ownership...'.Ted Kremenek2009-05-041-7/+7
| | | | llvm-svn: 70897
* Rename attributes:Ted Kremenek2009-05-041-2/+2
| | | | | | | | | | | 'objc_ownership_cfretain' -> 'cf_ownership_retain' 'objc_ownership_cfrelease' -> 'cf_ownership_release' Motivation: Core Foundation objects can be used in isolation from Objective-C, and this forces users to reason about the separate semantics of CF objects. More Sema support pending. llvm-svn: 70884
* retain checker: Add checker support for FunctionDecl ownership annotations. ↵Ted Kremenek2009-05-041-0/+29
| | | | | | Need to add Sema support. llvm-svn: 70873
* retain checker: Pull out logic for parameter annotations into aTed Kremenek2009-05-041-12/+21
| | | | | | separate method. llvm-svn: 70870
* retain checker: Don't treat function's declared in macros differently.Ted Kremenek2009-05-041-8/+1
| | | | llvm-svn: 70869
* retain checker:Ted Kremenek2009-05-041-91/+83
| | | | | | | - Fix retain checker test failures. - Update retain checker to have annotations override default summary effects, not completely redefine them. llvm-svn: 70828
* retain checker: RetainSummaryManager now has a 'DefaultSummary' objectTed Kremenek2009-05-041-39/+30
| | | | | | | which is returned instead of a null pointer. This helps centralize the logic concerning "default effects". llvm-svn: 70826
* retain checker: Don't bother using a FoldingSet to unique summaries.Ted Kremenek2009-05-041-24/+3
| | | | | | | We never compare summaries by their pointers, and we create only a handful of them when analyzing a given function. llvm-svn: 70824
* Fix: <rdar://problem/6850275> CF objects returned from methods with "new" or ↵Ted Kremenek2009-05-031-13/+33
| | | | | | | | | "copy" in their name should be treated as owned For methods that follow the "fundamental rule" and return Core Foundation objects, treat those objects as owned by the caller. llvm-svn: 70665
* Convert ArgEffects from an std::vector to an ImmutableMap. This will make ↵Ted Kremenek2009-05-031-117/+59
| | | | | | it much easier to clean up the summary generation logic with annotations. llvm-svn: 70660
* Rename isTrackedObjectType() -> isTrackedObjCObjectType().Ted Kremenek2009-05-031-4/+4
| | | | llvm-svn: 70657
* retain/release checker: Enhance leak description to say that the bugTed Kremenek2009-05-021-1/+5
| | | | | | occurs in GC mode. llvm-svn: 70638
* retain/release checker: Hook up attributes 'objc_ownership_retain' andTed Kremenek2009-04-301-10/+20
| | | | | | 'objc_ownership_release' to the effects on receivers. llvm-svn: 70507
* Handle case in EvalReturn where we cache out in the ExplodedGraph.Ted Kremenek2009-04-301-7/+11
| | | | llvm-svn: 70475
* retain/release checker: Use the ObjCMethodDecl in the @implementation if noTed Kremenek2009-04-301-2/+4
| | | | | | matching ObjCMethodDecl exists in the @interface. llvm-svn: 70474
* retain/release checker: Resolve method decl in @interface after getting theTed Kremenek2009-04-301-3/+4
| | | | | | ObjCInterfaceDecl, not before. llvm-svn: 70473
* retain/release checker: When determining whether an analyzed method can returnTed Kremenek2009-04-291-30/+45
| | | | | | | an owned object, consult its summary instead of inspecting the selector. This picks up annotations, and is just more general. llvm-svn: 70429
* Format cleanup. No functionality change.Ted Kremenek2009-04-291-3/+2
| | | | llvm-svn: 70420
* Reformat long line. No functionality change.Ted Kremenek2009-04-291-3/+2
| | | | llvm-svn: 70412
* retain/release checker: Hoist code for bug reports above transfer function logicTed Kremenek2009-04-291-681/+695
| | | | | | | (those diffs are just code moving) and move the logic for "return of owned object" leak reporting to EvalReturnStmt. llvm-svn: 70399
* Add version of getMethodSummary() that can be used to query the summary for theTed Kremenek2009-04-291-0/+14
| | | | | | method currently being analyzed. llvm-svn: 70388
* Rename getMethodSummary() -> getInstanceMethodSummary().Ted Kremenek2009-04-291-7/+11
| | | | llvm-svn: 70387
* retain/release checker: Refactor getMethodSummary() to not depend on ↵Ted Kremenek2009-04-291-33/+35
| | | | | | ObjCMessageExpr. llvm-svn: 70369
* As discussed with Ted offline, re-apply r70293.Zhongxing Xu2009-04-291-8/+1
| | | | llvm-svn: 70358
* retain/release checker: Refactor the guts of getClassMethodSummary to not dependTed Kremenek2009-04-291-15/+27
| | | | | | | on ObjCMessageExpr. This will enable us to use it elsewhere. This should not change any functionality. llvm-svn: 70352
* Implement ownership attribute 'objc_ownership_make_collectable'. This allows oneTed Kremenek2009-04-281-0/+4
| | | | | | to add 'CFMakeCollectable' semantics to a method. llvm-svn: 70336
* Revert 70293.Ted Kremenek2009-04-281-0/+7
| | | | llvm-svn: 70313
OpenPOWER on IntegriCloud