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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								6e86cafca3 
								
							 
						 
						
							
							
								
								retain/release checker: more hacks to workaround false positives cause by  
							
							 
							
							... 
							
							
							
							delegates. When a reference counted object is passed as to a 'void*' argument to
a method stop tracking the reference count.
llvm-svn: 69984 
							
						 
						
							2009-04-24 18:00:17 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								21895e0b89 
								
							 
						 
						
							
							
								
								Sentence case bug name.  
							
							 
							
							... 
							
							
							
							llvm-svn: 69983 
							
						 
						
							2009-04-24 17:51:19 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								8a5ad39a46 
								
							 
						 
						
							
							
								
								retain/release checker:  
							
							 
							
							... 
							
							
							
							- Fix summary lookup for class methods to now use the (optional)
  ObjCInterfaceDecl associated with a message expression. This removes a
  long-standing FIXME.
- Partial fix for <rdar://problem/6062730> by stop tracking objects that
  are passed to [NSObject performSelector].  These methods are often used
  for delegates, which the analyzer doesn't reason about well yet.
llvm-svn: 69982 
							
						 
						
							2009-04-24 17:50:11 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								60746a0a83 
								
							 
						 
						
							
							
								
								Refactor common logic in getMethodSummary() and getClassMethodSummary(). No  
							
							 
							
							... 
							
							
							
							functionality change.
llvm-svn: 69936 
							
						 
						
							2009-04-23 23:08:22 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								37467813c5 
								
							 
						 
						
							
							
								
								Further cleanups to isTrackedObjectType().  
							
							 
							
							... 
							
							
							
							llvm-svn: 69929 
							
						 
						
							2009-04-23 22:11:07 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0a1f9c423f 
								
							 
						 
						
							
							
								
								retain/release checker: Don't call isTrackedObject() with the canonical type.  
							
							 
							
							... 
							
							
							
							This was preventing the checker from tracking return objects referenced by 'id'.
llvm-svn: 69922 
							
						 
						
							2009-04-23 21:25:57 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b2f419dc88 
								
							 
						 
						
							
							
								
								retain/release checker: For class methods, only treat return values that are  
							
							 
							
							... 
							
							
							
							object references as tracked objects.
llvm-svn: 69915 
							
						 
						
							2009-04-23 20:02:30 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								f27110fc27 
								
							 
						 
						
							
							
								
								Per discussions with Ken Ferry and Paul Marks (<rdar://problem/6815234>) greatly  
							
							 
							
							... 
							
							
							
							extend the number of objects tracked by the retain/release checker by assuming
that all class and instance methods should follow Cocoa object "getter" and
"alloc/new" conventions.
llvm-svn: 69908 
							
						 
						
							2009-04-23 19:11:35 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								ac1294318d 
								
							 
						 
						
							
							
								
								get a CodeTextRegion when visiting FunctionDecl reference.  
							
							 
							
							... 
							
							
							
							get FunctionDecl with more general utility method.
llvm-svn: 69570 
							
						 
						
							2009-04-20 05:24:46 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								e3dcb2ddd1 
								
							 
						 
						
							
							
								
								FunctionDecl::getBody() is getting an ASTContext argument for use in  
							
							 
							
							... 
							
							
							
							lazy PCH deserialization. Propagate that argument wherever it needs to
be. No functionality change, except that I've tightened up a few PCH
tests in preparation.
llvm-svn: 69406 
							
						 
						
							2009-04-18 00:02:19 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								f2489ea043 
								
							 
						 
						
							
							
								
								- Move ownership of MemRegionManager into ValueManager.  
							
							 
							
							... 
							
							
							
							- Pull SVal::GetConjuredSymbol() and friends into ValueManager. This greatly
simplifies the calling interface to clients.
llvm-svn: 68731 
							
						 
						
							2009-04-09 22:22:44 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								bcced4ec31 
								
							 
						 
						
							
							
								
								Propagate the ASTContext to various AST traversal and lookup functions.  
							
							 
							
							... 
							
							
							
							No functionality change (really).
llvm-svn: 68726 
							
						 
						
							2009-04-09 21:40:53 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								aa4cfc2604 
								
							 
						 
						
							
							
								
								analyzer: Introduce a new class, ValueManager, that serves as an aggregate  
							
							 
							
							... 
							
							
							
							"manager of symbolic values", wrapping BasicValueFactory, SymbolManager, and
MemRegionManager. While these individual managers nicely separate functionality
in the analyzer, constructing symbolic values can sometimes be cumbersome
because it requires using multiple managers at once. The goal of this class is
to create some factory methods to create SVals that require the use of these
different managers, thus (hopefully) simplifying the analyzer API for clients.
llvm-svn: 68709 
							
						 
						
							2009-04-09 16:13:17 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								22f72485ed 
								
							 
						 
						
							
							
								
								stop using loc::SymbolVal.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68696 
							
						 
						
							2009-04-09 06:43:44 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								0c87a4e79b 
								
							 
						 
						
							
							
								
								stop using loc::SymbolVal.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68695 
							
						 
						
							2009-04-09 06:41:51 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								4a8f0cf874 
								
							 
						 
						
							
							
								
								clean up code with new API.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68694 
							
						 
						
							2009-04-09 06:35:30 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								b74817f387 
								
							 
						 
						
							
							
								
								clean up code with new API.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68693 
							
						 
						
							2009-04-09 06:32:20 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								9410d7ee97 
								
							 
						 
						
							
							
								
								Add a new method because sometimes the type of the conjured symbol is not the  
							
							 
							
							... 
							
							
							
							type of the expression where we create the symbol.
llvm-svn: 68692 
							
						 
						
							2009-04-09 06:30:17 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								40934cfa9b 
								
							 
						 
						
							
							
								
								make a conjured symbol as the original code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68691 
							
						 
						
							2009-04-09 06:18:05 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								d3b33ba406 
								
							 
						 
						
							
							
								
								clean up code with new API.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68687 
							
						 
						
							2009-04-09 06:03:54 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								aed74642cb 
								
							 
						 
						
							
							
								
								Remove GetLeakNode.  This isn't the right approach.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68502 
							
						 
						
							2009-04-07 05:07:44 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								e2f5a9f8e3 
								
							 
						 
						
							
							
								
								Eagerly compute the leak location when a leak occurs at the end of a path.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68496 
							
						 
						
							2009-04-07 04:54:20 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								6fd0921bdb 
								
							 
						 
						
							
							
								
								retain/release checker: When hunting for the leak location, don't walk the  
							
							 
							
							... 
							
							
							
							ExplodedGraph backwards. That may inadvertently result in reverse control-flow
edges in the PathDiagostic.
llvm-svn: 68477 
							
						 
						
							2009-04-07 00:12:43 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								f9201d9799 
								
							 
						 
						
							
							
								
								Sentence-case bug type.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68406 
							
						 
						
							2009-04-03 21:10:31 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								751e7e3833 
								
							 
						 
						
							
							
								
								retain/release checker: don't track NSPanel until we have better reasoning about  
							
							 
							
							... 
							
							
							
							the subtle ownership issues of such objects.
llvm-svn: 68397 
							
						 
						
							2009-04-03 19:02:51 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								7f905c2f0d 
								
							 
						 
						
							
							
								
								Fix grammar.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68282 
							
						 
						
							2009-04-02 03:42:38 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								d7c0872653 
								
							 
						 
						
							
							
								
								Title-case the names of bug types.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68274 
							
						 
						
							2009-04-02 02:40:45 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0bb0909233 
								
							 
						 
						
							
							
								
								- Changed PathDiagnosticPiece::getLocation() to return a PathDiagnosticLocation  
							
							 
							
							... 
							
							
							
							instead of a FullSourceLoc. This resulted in a bunch of small edits in various
  clients.
- Updated BugReporter to include an alternate PathDiagnostic generation
  algorithm for PathDiagnosticClients desiring more control-flow pieces.
llvm-svn: 68193 
							
						 
						
							2009-04-01 06:13:56 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								3e31c26f81 
								
							 
						 
						
							
							
								
								analyzer infrastructure: make a bunch of changes to symbolic expressions that  
							
							 
							
							... 
							
							
							
							Zhongxing and I discussed by email.
Main changes:
- Removed SymIntConstraintVal and SymIntConstraint
- Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr
- Added nonloc::SymExprVal to wrap SymExpr
- SymbolRef is now just a typedef of 'const SymbolData*'
- Bunch of minor code cleanups in how some methods were invoked (no functionality change)
This changes are part of a long-term plan to have full symbolic expression
trees. This will be useful for lazily evaluating complicated expressions.
llvm-svn: 67731 
							
						 
						
							2009-03-26 03:35:11 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								8c3f0047b4 
								
							 
						 
						
							
							
								
								retain/release checker: Tracking autorelease counts for objects. We're still not  
							
							 
							
							... 
							
							
							
							completely there with accurately modeling autorelease pools.
llvm-svn: 67384 
							
						 
						
							2009-03-20 17:34:15 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								211094d793 
								
							 
						 
						
							
							
								
								Stub out some code for support for NSDeallocateObject. This is enabled yet until  
							
							 
							
							... 
							
							
							
							we resolve the semantics of this function when GC is enabled.
llvm-svn: 67116 
							
						 
						
							2009-03-17 22:43:44 +00:00