Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								2d0ff62a0d 
								
							 
						 
						
							
							
								
								It lives!  The retain/release checker now tracks objects that are sent  
							
							 
							
							... 
							
							
							
							'autorelease'.
llvm-svn: 71307 
							
						 
						
							2009-05-09 01:50:57 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								8038f7b30f 
								
							 
						 
						
							
							
								
								rename: MemRegion:  
							
							 
							
							... 
							
							
							
							RValueType => ObjectType
 LValueType => LocationType
No functionality change.
llvm-svn: 71304 
							
						 
						
							2009-05-09 00:50:33 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9ec08aa3f7 
								
							 
						 
						
							
							
								
								More hacking on autorelease errors. We now can emit basic errors (disabled for  
							
							 
							
							... 
							
							
							
							now until ready).
llvm-svn: 71303 
							
						 
						
							2009-05-09 00:44:07 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								d35272f96b 
								
							 
						 
						
							
							
								
								Put most of the boilerplate logic in place for reporting autorelease errors.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71301 
							
						 
						
							2009-05-09 00:10:05 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								8c8fb488e6 
								
							 
						 
						
							
							
								
								retain/release checker: Add stub for HandleAutoreleaseCounts.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71290 
							
						 
						
							2009-05-08 23:32:51 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								884a8996c5 
								
							 
						 
						
							
							
								
								retain/release checker: Refactor error-reporting code in EvalDeadSymbols and  
							
							 
							
							... 
							
							
							
							EvalEndPath. This sets the stage for handling autorelease counts.
llvm-svn: 71283 
							
						 
						
							2009-05-08 23:09:42 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								3a0516b25a 
								
							 
						 
						
							
							
								
								retain checker: Track the number of times a tracked object is sent  
							
							 
							
							... 
							
							
							
							'autorelease'. This isn't used yet to flag errors.
llvm-svn: 71244 
							
						 
						
							2009-05-08 20:01:42 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								062c14ba24 
								
							 
						 
						
							
							
								
								Remove experimental ownership attributes from Clang.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71216 
							
						 
						
							2009-05-08 15:19:25 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9157fbb6a6 
								
							 
						 
						
							
							
								
								Minor code cleanup in retain/release checker in preparation for some  
							
							 
							
							... 
							
							
							
							other changes.  Instead of repeatedly checking for GC mode when
getting the return effect, just do this computation once.
llvm-svn: 71193 
							
						 
						
							2009-05-07 23:40:42 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								bb8d546208 
								
							 
						 
						
							
							
								
								Refactor BugReporter interface to have a new 'BugReporterContext' and  
							
							 
							
							... 
							
							
							
							'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 
							
						 
						
							2009-05-06 21:39:49 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0626df4eeb 
								
							 
						 
						
							
							
								
								Fix analyzer regression reported in PR 4164:  
							
							 
							
							... 
							
							
							
							- 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 
							
						 
						
							2009-05-06 18:19:24 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								213ff5a98e 
								
							 
						 
						
							
							
								
								Implement attribute 'ns_autorelease'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70990 
							
						 
						
							2009-05-05 18:44:20 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								94c464ef22 
								
							 
						 
						
							
							
								
								Implement attribute 'cf_returns_owned' (mirrors 'ns_returns_owned').  
							
							 
							
							... 
							
							
							
							llvm-svn: 70952 
							
						 
						
							2009-05-05 00:46:09 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								6bdfcf47ad 
								
							 
						 
						
							
							
								
								Remove experimental attribute 'ns_ownership_make_collectable.'  
							
							 
							
							... 
							
							
							
							llvm-svn: 70940 
							
						 
						
							2009-05-04 23:46:06 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0836a19931 
								
							 
						 
						
							
							
								
								Rename attributes 'objc_ownership...' to 'ns_ownership...'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70897 
							
						 
						
							2009-05-04 19:10:19 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								5dbfa3fadd 
								
							 
						 
						
							
							
								
								Rename attributes:  
							
							 
							
							... 
							
							
							
							'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 
							
						 
						
							2009-05-04 17:29:57 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								49a844e1a6 
								
							 
						 
						
							
							
								
								retain checker: Add checker support for FunctionDecl ownership annotations.  Need to add Sema support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70873 
							
						 
						
							2009-05-04 16:43:50 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								863f68aa06 
								
							 
						 
						
							
							
								
								retain checker: Pull out logic for parameter annotations into a  
							
							 
							
							... 
							
							
							
							separate method.
llvm-svn: 70870 
							
						 
						
							2009-05-04 15:40:58 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								df76e6d09d 
								
							 
						 
						
							
							
								
								retain checker: Don't treat function's declared in macros differently.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70869 
							
						 
						
							2009-05-04 15:34:07 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								1d9a267b2e 
								
							 
						 
						
							
							
								
								retain checker:  
							
							 
							
							... 
							
							
							
							- Fix retain checker test failures.
- Update retain checker to have annotations override default summary effects, not completely redefine them.
llvm-svn: 70828 
							
						 
						
							2009-05-04 05:31:22 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ff606a1259 
								
							 
						 
						
							
							
								
								retain checker: RetainSummaryManager now has a 'DefaultSummary' object  
							
							 
							
							... 
							
							
							
							which is returned instead of a null pointer.  This helps centralize
the logic concerning "default effects".
llvm-svn: 70826 
							
						 
						
							2009-05-04 04:57:00 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								1bff64e309 
								
							 
						 
						
							
							
								
								retain checker: Don't bother using a FoldingSet to unique summaries.  
							
							 
							
							... 
							
							
							
							We never compare summaries by their pointers, and we create only a
handful of them when analyzing a given function.
llvm-svn: 70824 
							
						 
						
							2009-05-04 04:30:18 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								4b59ccb563 
								
							 
						 
						
							
							
								
								Fix: <rdar://problem/6850275> CF objects returned from methods with "new" or "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 
							
						 
						
							2009-05-03 06:08:32 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								7d79a5f87d 
								
							 
						 
						
							
							
								
								Convert ArgEffects from an std::vector to an ImmutableMap.  This will make it much easier to clean up the summary generation logic with annotations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70660 
							
						 
						
							2009-05-03 05:20:50 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b4cf4a52ab 
								
							 
						 
						
							
							
								
								Rename isTrackedObjectType() -> isTrackedObjCObjectType().  
							
							 
							
							... 
							
							
							
							llvm-svn: 70657 
							
						 
						
							2009-05-03 04:42:10 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								f1e7667099 
								
							 
						 
						
							
							
								
								retain/release checker: Enhance leak description to say that the bug  
							
							 
							
							... 
							
							
							
							occurs in GC mode.
llvm-svn: 70638 
							
						 
						
							2009-05-02 19:05:19 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								2ff8a79d27 
								
							 
						 
						
							
							
								
								retain/release checker: Hook up attributes 'objc_ownership_retain' and  
							
							 
							
							... 
							
							
							
							'objc_ownership_release' to the effects on receivers.
llvm-svn: 70507 
							
						 
						
							2009-04-30 20:00:31 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b4e27a1838 
								
							 
						 
						
							
							
								
								Handle case in EvalReturn where we cache out in the ExplodedGraph.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70475 
							
						 
						
							2009-04-30 05:51:50 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								497df9126f 
								
							 
						 
						
							
							
								
								retain/release checker: Use the ObjCMethodDecl in the @implementation if no  
							
							 
							
							... 
							
							
							
							matching ObjCMethodDecl exists in the @interface.
llvm-svn: 70474 
							
						 
						
							2009-04-30 05:47:23 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b2a143fad6 
								
							 
						 
						
							
							
								
								retain/release checker: Resolve method decl in @interface after getting the  
							
							 
							
							... 
							
							
							
							ObjCInterfaceDecl, not before.
llvm-svn: 70473 
							
						 
						
							2009-04-30 05:41:14 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								223a7d5445 
								
							 
						 
						
							
							
								
								retain/release checker: When determining whether an analyzed method can return  
							
							 
							
							... 
							
							
							
							an owned object, consult its summary instead of inspecting the selector. This
picks up annotations, and is just more general.
llvm-svn: 70429 
							
						 
						
							2009-04-29 23:03:22 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								d6bef2edab 
								
							 
						 
						
							
							
								
								Format cleanup.  No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70420 
							
						 
						
							2009-04-29 22:25:52 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								53cce5c195 
								
							 
						 
						
							
							
								
								Reformat long line.  No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70412 
							
						 
						
							2009-04-29 21:31:59 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								6bd78709f2 
								
							 
						 
						
							
							
								
								retain/release checker: Hoist code for bug reports above transfer function logic  
							
							 
							
							... 
							
							
							
							(those diffs are just code moving) and move the logic for "return of owned
object" leak reporting to EvalReturnStmt.
llvm-svn: 70399 
							
						 
						
							2009-04-29 18:50:19 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								99fe1695c7 
								
							 
						 
						
							
							
								
								Add version of getMethodSummary() that can be used to query the summary for the  
							
							 
							
							... 
							
							
							
							method currently being analyzed.
llvm-svn: 70388 
							
						 
						
							2009-04-29 17:17:48 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								387243067a 
								
							 
						 
						
							
							
								
								Rename getMethodSummary() -> getInstanceMethodSummary().  
							
							 
							
							... 
							
							
							
							llvm-svn: 70387 
							
						 
						
							2009-04-29 17:09:14 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0b50fb1de1 
								
							 
						 
						
							
							
								
								retain/release checker: Refactor getMethodSummary() to not depend on ObjCMessageExpr.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70369 
							
						 
						
							2009-04-29 05:04:30 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								3ee3044bd7 
								
							 
						 
						
							
							
								
								As discussed with Ted offline, re-apply r70293.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70358 
							
						 
						
							2009-04-29 02:30:09 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								7686ffaf07 
								
							 
						 
						
							
							
								
								retain/release checker: Refactor the guts of getClassMethodSummary to not depend  
							
							 
							
							... 
							
							
							
							on ObjCMessageExpr. This will enable us to use it elsewhere. This should not
change any functionality.
llvm-svn: 70352 
							
						 
						
							2009-04-29 00:42:39 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								869292d5b6 
								
							 
						 
						
							
							
								
								Implement ownership attribute 'objc_ownership_make_collectable'. This allows one  
							
							 
							
							... 
							
							
							
							to add 'CFMakeCollectable' semantics to a method.
llvm-svn: 70336 
							
						 
						
							2009-04-28 22:32:26 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ea62bf4e58 
								
							 
						 
						
							
							
								
								Revert 70293.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70313 
							
						 
						
							2009-04-28 18:48:13 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								6e304e6323 
								
							 
						 
						
							
							
								
								Now we can remove the 'blast-through' code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70293 
							
						 
						
							2009-04-28 13:49:42 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								84bfa2c2dc 
								
							 
						 
						
							
							
								
								Add two new checker-specific attributes: 'objc_ownership_release' and  
							
							 
							
							... 
							
							
							
							'objc_ownership_cfrelease'. These are the 'release' equivalents of
'objc_ownership_retain' and 'objc_ownership_cfretain' respectively.
llvm-svn: 70235 
							
						 
						
							2009-04-27 19:36:56 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								e6633567e0 
								
							 
						 
						
							
							
								
								Track objects in GC mode returned by 'alloc', 'new', etc. methods. These are  
							
							 
							
							... 
							
							
							
							treated as "not owned" objects.
llvm-svn: 70232 
							
						 
						
							2009-04-27 19:14:45 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ebbef7d0d3 
								
							 
						 
						
							
							
								
								Add new checker-specific attribute 'objc_ownership_cfretain'. This is the same  
							
							 
							
							... 
							
							
							
							as 'objc_ownership_cfretain' except that the method acts like a CFRetain instead
of a [... retain] (important in GC modes). Checker support is wired up, but
currently only for Objective-C message expressions (not function calls).
llvm-svn: 70218 
							
						 
						
							2009-04-27 18:27:22 +00:00  
						
					 
				
					
						
							
							
								 
								Sebastian Redl
							
						 
						
							 
							
							
							
							
								
							
							
								a7b98a772c 
								
							 
						 
						
							
							
								
								Implement function-try-blocks. However, there's a very subtle bug that I can't track down.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70155 
							
						 
						
							2009-04-26 20:35:05 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								e75de95408 
								
							 
						 
						
							
							
								
								Hook up attribute 'objc_ownership_retain' to the analyzer. This attribute allows  
							
							 
							
							... 
							
							
							
							users to specify that a method's argument is visibly retained (reference count
incremented).
llvm-svn: 70008 
							
						 
						
							2009-04-25 01:21:50 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b97d093e16 
								
							 
						 
						
							
							
								
								Hook up __attribute__((objc_ownership_returns)) to the retain/release checker.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70002 
							
						 
						
							2009-04-24 23:32:32 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								6a966b2486 
								
							 
						 
						
							
							
								
								Fix the same false positive reported in PR 2542 and <rdar://problem/6793409>  
							
							 
							
							... 
							
							
							
							involving an NSAnimation object delegating its release to a delegate method.
llvm-svn: 69992 
							
						 
						
							2009-04-24 21:56:17 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								53c5b7e0bd 
								
							 
						 
						
							
							
								
								Minor refactoring: pass selector to getCommonMethodSummary(). No functionality  
							
							 
							
							... 
							
							
							
							change.
llvm-svn: 69985 
							
						 
						
							2009-04-24 18:19:07 +00:00