Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ae01dc73af 
								
							 
						 
						
							
							
								
								API cleanup: move more methods from GRStateManager to GRState.  
							
							 
							
							... 
							
							
							
							llvm-svn: 73968 
							
						 
						
							2009-06-23 17:55:07 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								095f1a9848 
								
							 
						 
						
							
							
								
								Move clients over from using GRStateManager::BindXXX and friends to  
							
							 
							
							... 
							
							
							
							GRState->bindXXX and friends (and constify some arguments along the way).
llvm-svn: 73740 
							
						 
						
							2009-06-18 23:58:37 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								a28565ac62 
								
							 
						 
						
							
							
								
								Fix another bug in BugReporter where we wouldn't always select the bug report in a bug equivalence class with the shortest path.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71920 
							
						 
						
							2009-05-16 01:11:58 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								73777059f0 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Do not include the range of target '}'  
							
							 
							
							... 
							
							
							
							llvm-svn: 71832 
							
						 
						
							2009-05-15 02:46:13 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								cfe7d02b2c 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Add control-flow piece to '}' in  
							
							 
							
							... 
							
							
							
							loop body when generating 'Looping back to the head of the loop'
diagnostics.
llvm-svn: 71829 
							
						 
						
							2009-05-15 01:50:15 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								5fb7847fbf 
								
							 
						 
						
							
							
								
								BugReport::getEndPath() - Only add a Stmt's range to the constructed PathDiagnosticEventPiece if the BugReport contained no explicit ranges.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71516 
							
						 
						
							2009-05-11 23:50:59 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								2ee73b86c0 
								
							 
						 
						
							
							
								
								EdgeBuilder: DeclStmts and BinaryOperators are not the enclosing location context when they are used as initialization code for loops.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71480 
							
						 
						
							2009-05-11 22:19:32 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								c0b879b4a7 
								
							 
						 
						
							
							
								
								EdgeBuilder::cleanUpLocation() should used the PathDiagnosticLocation constructor for a single point, not a range.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71477 
							
						 
						
							2009-05-11 21:42:34 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								c14b594b14 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Add EdgeBuilder::cleanUpLocation for canonicalization locations and use this in both popLocation and rawAddEdge.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71470 
							
						 
						
							2009-05-11 19:50:47 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								3978f7972d 
								
							 
						 
						
							
							
								
								analyzer:  
							
							 
							
							... 
							
							
							
							- Improve -autorelease diagnostics.
- Improve VLA diagnostics.
- Use "short description" for bug when outputting to TextDiagnostics
llvm-svn: 71383 
							
						 
						
							2009-05-10 05:11:21 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9abe474852 
								
							 
						 
						
							
							
								
								Add preliminary support for enhancing null-pointer dereference diagnostics.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71135 
							
						 
						
							2009-05-07 00:45:33 +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
							
						 
						
							 
							
							
							
							
								
							
							
								a8106efce9 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): improve location context generation for the  
							
							 
							
							... 
							
							
							
							start of 'do' and '@synchronized' statements.
llvm-svn: 71038 
							
						 
						
							2009-05-05 23:13:38 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								98017051ae 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Fix getEnclosingStmtLocation to reason  
							
							 
							
							... 
							
							
							
							about Exprs that are not consumed and fix where the loop iteration diagnostic
goes.
llvm-svn: 71027 
							
						 
						
							2009-05-05 22:19:17 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								e396f72ec7 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): don't mark location contexts that are  
							
							 
							
							... 
							
							
							
							control-flow expressions as dead.
llvm-svn: 70887 
							
						 
						
							2009-05-04 18:15:17 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								afbff15e64 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): introduce the notion of a "dead"  
							
							 
							
							... 
							
							
							
							location context.  This allows us to postpone the decision of whether
or not a context should add a control-flow piece to the diagnostics
when inspecting its subexpressions.
llvm-svn: 70545 
							
						 
						
							2009-05-01 16:08:09 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								29d0880e50 
								
							 
						 
						
							
							
								
								Remove #if 0'ed code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70542 
							
						 
						
							2009-05-01 15:19:33 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9f08b842e1 
								
							 
						 
						
							
							
								
								Fix null dereference.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70417 
							
						 
						
							2009-04-29 22:05:03 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								47187c6ad2 
								
							 
						 
						
							
							
								
								BugReporter/PathDiagnostics:  
							
							 
							
							... 
							
							
							
							- Add an (optional) short description for BugReports for clients that want
  to distinguish between long and short descriptions for bugs
- Make the bug report for VLA less obscene for Plist diagnostics by using
  the short description
llvm-svn: 70415 
							
						 
						
							2009-04-29 21:58:13 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9bea0dc178 
								
							 
						 
						
							
							
								
								Extensive diagnostics: Do not add a location context for do...while statements.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70286 
							
						 
						
							2009-04-28 04:28:12 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								61114bc558 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Clean up do...while control-flow edges, and  
							
							 
							
							... 
							
							
							
							add "Looping back to the head of the loop" diagnostic for loops.
llvm-svn: 70285 
							
						 
						
							2009-04-28 04:23:15 +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  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								5cdb8cc267 
								
							 
						 
						
							
							
								
								Minor code cleanup.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70144 
							
						 
						
							2009-04-26 19:04:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f0b64d73a8 
								
							 
						 
						
							
							
								
								split ObjC and C++ Statements out into their own headers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70105 
							
						 
						
							2009-04-26 01:32:48 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								3ebc5057ac 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Recursively adjust the referred expression  
							
							 
							
							... 
							
							
							
							when popping location contexts.
llvm-svn: 69898 
							
						 
						
							2009-04-23 16:44:22 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								e60809c31d 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Ignore parentheses when added control-flow  
							
							 
							
							... 
							
							
							
							pieces for location contexts.
llvm-svn: 69895 
							
						 
						
							2009-04-23 16:19:29 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								48b7875e55 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): Use correct location for location contexts.  
							
							 
							
							... 
							
							
							
							llvm-svn: 69824 
							
						 
						
							2009-04-22 20:51:59 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								fb05406cef 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics): always add an edge if there is no location  
							
							 
							
							... 
							
							
							
							context.
llvm-svn: 69823 
							
						 
						
							2009-04-22 20:36:26 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								6c867a1460 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostics):  
							
							 
							
							... 
							
							
							
							- Remove stale assertion that was breaking the test suite.
- When popping location contexts, only add a control-flow piece for fileID
  locations.
llvm-svn: 69814 
							
						 
						
							2009-04-22 18:37:42 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0752a5dff3 
								
							 
						 
						
							
							
								
								BugReporter (extensive diagnostic algorithm): The initial control-flow edge now  
							
							 
							
							... 
							
							
							
							starts from the first character of the first statement.
llvm-svn: 69813 
							
						 
						
							2009-04-22 18:16:20 +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
							
						 
						
							 
							
							
							
							
								
							
							
								3cb8a84924 
								
							 
						 
						
							
							
								
								Removed some commented code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68495 
							
						 
						
							2009-04-07 04:53:35 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								86d52c4c02 
								
							 
						 
						
							
							
								
								PathDiagnostic generation: experiment with avoiding generation of control-flow  
							
							 
							
							... 
							
							
							
							pieces between block entrance and block end unless necessary.
llvm-svn: 68483 
							
						 
						
							2009-04-07 01:34:17 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								d7c1aaa6c5 
								
							 
						 
						
							
							
								
								Don't overguard to adding a control-flow piece when "alwaysAdd" is true.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68476 
							
						 
						
							2009-04-07 00:11:40 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								c4c9ed0f9b 
								
							 
						 
						
							
							
								
								Rewrite control-flow diagnostic generation "extensive" algorithm using "edge  
							
							 
							
							... 
							
							
							
							contexts".  This allows us to use a stack of contexts to keep track of what control-flow pieces to include when exiting blocks like 'if', 'for', etc.
llvm-svn: 68473 
							
						 
						
							2009-04-06 23:06:54 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								a2a735e7fa 
								
							 
						 
						
							
							
								
								Add another null pointer check.  Simplify condition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68283 
							
						 
						
							2009-04-02 03:44:00 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								5d6d7d8184 
								
							 
						 
						
							
							
								
								Add null pointer check.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68281 
							
						 
						
							2009-04-02 03:30:55 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								afb066d1f5 
								
							 
						 
						
							
							
								
								BugReporter, extensive path-diagnostics: add an extra control-flow edge to the  
							
							 
							
							... 
							
							
							
							enclosing statement when jumping to a subexpression.
llvm-svn: 68244 
							
						 
						
							2009-04-01 21:12:06 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								95af35e251 
								
							 
						 
						
							
							
								
								Fix comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68236 
							
						 
						
							2009-04-01 19:43:28 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ed47d79cc2 
								
							 
						 
						
							
							
								
								BugReporter: for extensive path diagnostics:  
							
							 
							
							... 
							
							
							
							- When processing BlockEdges with terminators, using the condition as the
  control-flow point for terminators that are expressions (e.g., '&&', '?')
- When processing events, allow intra-compound statement "jumping"
llvm-svn: 68228 
							
						 
						
							2009-04-01 18:48:52 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9ce13241ff 
								
							 
						 
						
							
							
								
								BugReporter: for extensive PathDiagnostic generation, add control-flow from the  
							
							 
							
							... 
							
							
							
							start of the function/method.
llvm-svn: 68217 
							
						 
						
							2009-04-01 17:52:26 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								45a75f718c 
								
							 
						 
						
							
							
								
								BugReporter: For the "extensive" PathDiagnostic generation algorithm, elide most  
							
							 
							
							... 
							
							
							
							intra-compound statement jumps unless they are between terminators (i.e.,
branches).
llvm-svn: 68216 
							
						 
						
							2009-04-01 17:18:21 +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
							
						 
						
							 
							
							
							
							
								
							
							
								7062c50772 
								
							 
						 
						
							
							
								
								More code reshuffling.  No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68157 
							
						 
						
							2009-03-31 23:00:32 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								4e81c3ccac 
								
							 
						 
						
							
							
								
								Allow two codepaths for PathDiagnostic generation. This patch mainly consists of  
							
							 
							
							... 
							
							
							
							refactoring to make this possible (no functionality change).
llvm-svn: 68141 
							
						 
						
							2009-03-31 20:22:36 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ac508988a5 
								
							 
						 
						
							
							
								
								Simplify more code by using SVal::getAsSymbol().  
							
							 
							
							... 
							
							
							
							llvm-svn: 68052 
							
						 
						
							2009-03-30 19:53:37 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								a53eb7fa80 
								
							 
						 
						
							
							
								
								Convert use of loc::SymbolVal and nonloc::SymbolVal to V.getAsSymbol(). This  
							
							 
							
							... 
							
							
							
							also makes this code more correct as it transparently handles SVals that wrapped
TypedViewRegions(SymbolicRegions).
llvm-svn: 68048 
							
						 
						
							2009-03-30 18:39:15 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b505811250 
								
							 
						 
						
							
							
								
								Adjust control-flow endpoints for '&&' and '||'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 67948 
							
						 
						
							2009-03-28 17:33:57 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								cd58cced81 
								
							 
						 
						
							
							
								
								Text PathDiagnosticBuilder::getEnclosingStmt() about '?'  
							
							 
							
							... 
							
							
							
							llvm-svn: 67909 
							
						 
						
							2009-03-28 04:08:14 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b9411565ea 
								
							 
						 
						
							
							
								
								Teach PathDiagnosticBuilder::getEnclosingStmtLocation() about while/if/do/for,  
							
							 
							
							... 
							
							
							
							etc., so that the "body" is always considered a top-level statement for edge
transitions (even if it is an expression).
llvm-svn: 67901 
							
						 
						
							2009-03-28 03:37:59 +00:00