4ec3cf9937 
								
							 
						 
						
							
							
								
								[analyzer] Remove ManagerRegistry which is not used. In the future we may load analyzer plugins dynamically but  
							
							... 
							
							
							
							registration through static constructors should be avoided.
llvm-svn: 125502 
							
						 
						
							2011-02-14 18:13:17 +00:00  
				
					
						
							
							
								 
						
							
								2ef5f3c1c5 
								
							 
						 
						
							
							
								
								[analyzer] Move include/clang/StaticAnalyzer/AnalysisConsumer.h -> lib/StaticAnalyzer/Frontend/AnalysisConsumer.h since  
							
							... 
							
							
							
							FrontendActions.cpp is the only user.
llvm-svn: 125501 
							
						 
						
							2011-02-14 18:13:11 +00:00  
				
					
						
							
							
								 
						
							
								ae92c95d34 
								
							 
						 
						
							
							
								
								[analyzer] Move Checkers/FrontendActions.cpp -> Frontend/FrontendActions.cpp  
							
							... 
							
							
							
							llvm-svn: 125500 
							
						 
						
							2011-02-14 18:13:06 +00:00  
				
					
						
							
							
								 
						
							
								ecd3334dac 
								
							 
						 
						
							
							
								
								[analyzer] Introduce libclangStaticAnalyzerFrontend and move Checkers/AnalysisConsumer.cpp into Frontend lib.  
							
							... 
							
							
							
							llvm-svn: 125499 
							
						 
						
							2011-02-14 18:13:01 +00:00  
				
					
						
							
							
								 
						
							
								3374e03344 
								
							 
						 
						
							
							
								
								Remove dead code in IdempotentOperationChecker.  
							
							... 
							
							
							
							llvm-svn: 125497 
							
						 
						
							2011-02-14 18:05:07 +00:00  
				
					
						
							
							
								 
						
							
								5794ef6950 
								
							 
						 
						
							
							
								
								Fix edge case where we don't cull warnings in IdempotentOperationsChecker due to incomplete analysis of loops.  
							
							... 
							
							
							
							llvm-svn: 125495 
							
						 
						
							2011-02-14 17:59:23 +00:00  
				
					
						
							
							
								 
						
							
								a71d5d31a1 
								
							 
						 
						
							
							
								
								Use 'BitVector' instead of SmallPtrSet<CFGBlock*> in IdempotentOperationsChecker.  No real functionality change.  
							
							... 
							
							
							
							llvm-svn: 125494 
							
						 
						
							2011-02-14 17:59:20 +00:00  
				
					
						
							
							
								 
						
							
								c059798756 
								
							 
						 
						
							
							
								
								Teach the IdempotentOperations checker to ignore property setters.  
							
							... 
							
							
							
							llvm-svn: 125443 
							
						 
						
							2011-02-12 18:50:03 +00:00  
				
					
						
							
							
								 
						
							
								70aeefa17e 
								
							 
						 
						
							
							
								
								Weaken the ObjCSelfInitChecker to only warn when one calls an 'init' method within an 'init' method.  This is a temporary stop gap to avoid false positives while we investigate how to make it smarter.  
							
							... 
							
							
							
							llvm-svn: 125427 
							
						 
						
							2011-02-12 03:03:54 +00:00  
				
					
						
							
							
								 
						
							
								10b5926e29 
								
							 
						 
						
							
							
								
								static analyzer: Also invalidate instance variables of a receiver in a message expression, just as we do with parameters.  
							
							... 
							
							
							
							Fixes <rdar://problem/8725041>.
llvm-svn: 125422 
							
						 
						
							2011-02-12 01:01:31 +00:00  
				
					
						
							
							
								 
						
							
								b1c392aa56 
								
							 
						 
						
							
							
								
								Don't emit a dead store for '++' operations unless it occurs with a return statement.  We've never seen any other cases that were real bugs.  
							
							... 
							
							
							
							Fixes <rdar://problem/6962292>.
llvm-svn: 125419 
							
						 
						
							2011-02-12 00:17:19 +00:00  
				
					
						
							
							
								 
						
							
								c498878e6d 
								
							 
						 
						
							
							
								
								Add CMake dependencies so that LLVM_USED_LIBS order doesn't matter.  
							
							... 
							
							
							
							I also sorted the tools/driver dependencies since their order no
longer matters.
llvm-svn: 125417 
							
						 
						
							2011-02-11 23:46:38 +00:00  
				
					
						
							
							
								 
						
							
								9865d7f0e6 
								
							 
						 
						
							
							
								
								Don't report dead stores on unreachable code paths.  Fixes <rdar://problem/8405222>.  
							
							... 
							
							
							
							llvm-svn: 125415 
							
						 
						
							2011-02-11 23:24:26 +00:00  
				
					
						
							
							
								 
						
							
								7b3f290d61 
								
							 
						 
						
							
							
								
								Remove RegionStoreManager::evalBinOp(), which is now handled by the SValBuilder.  
							
							... 
							
							
							
							llvm-svn: 125396 
							
						 
						
							2011-02-11 19:48:19 +00:00  
				
					
						
							
							
								 
						
							
								eddeba0dae 
								
							 
						 
						
							
							
								
								Rename 'InvalidateRegions()' to 'invalidateRegions()'.  
							
							... 
							
							
							
							llvm-svn: 125395 
							
						 
						
							2011-02-11 19:48:15 +00:00  
				
					
						
							
							
								 
						
							
								5662dfefad 
								
							 
						 
						
							
							
								
								Allow the 'Eng' entry in GRStateManager to be a (possibly null) pointer instead of a reference.  
							
							... 
							
							
							
							llvm-svn: 125362 
							
						 
						
							2011-02-11 04:20:16 +00:00  
				
					
						
							
							
								 
						
							
								98dd73d66c 
								
							 
						 
						
							
							
								
								CMake: LLVM_NO_RTTI must be obsolete now!  
							
							... 
							
							
							
							llvm-svn: 125275 
							
						 
						
							2011-02-10 09:15:32 +00:00  
				
					
						
							
							
								 
						
							
								1656db69f3 
								
							 
						 
						
							
							
								
								Run ~GRState() when reclaiming GRStates.  
							
							... 
							
							
							
							llvm-svn: 125262 
							
						 
						
							2011-02-10 03:07:40 +00:00  
				
					
						
							
							
								 
						
							
								75e4564140 
								
							 
						 
						
							
							
								
								static analyzer: Make GRStates reference counted, with reference counts managed by ExplodedNodes.  
							
							... 
							
							
							
							This reduces memory usage of the analyzer on sqlite by another 5%.
llvm-svn: 125260 
							
						 
						
							2011-02-10 02:21:52 +00:00  
				
					
						
							
							
								 
						
							
								f8cbac4b91 
								
							 
						 
						
							
							
								
								Split 'include/clang/StaticAnalyzer' into 'include/clang/StaticAnalyzer/Core' and 'include/clang/StaticAnalyzer/Checkers'.  
							
							... 
							
							
							
							This layout matches lib/StaticAnalyzer, which corresponds to two StaticAnalyzer libraries.
llvm-svn: 125251 
							
						 
						
							2011-02-10 01:03:03 +00:00  
				
					
						
							
							
								 
						
							
								41f8546233 
								
							 
						 
						
							
							
								
								AST, Sema, Serialization: add CUDAKernelCallExpr and related semantic actions  
							
							... 
							
							
							
							llvm-svn: 125217 
							
						 
						
							2011-02-09 21:07:24 +00:00  
				
					
						
							
							
								 
						
							
								bd06678921 
								
							 
						 
						
							
							
								
								Remove vtables from the Stmt hierarchy;  this was pretty easy as  
							
							... 
							
							
							
							there were only three virtual methods of any significance.
The primary way to grab child iterators now is with
  Stmt::child_range children();
  Stmt::const_child_range children() const;
where a child_range is just a std::pair of iterators suitable for
being llvm::tie'd to some locals.  I've left the old child_begin()
and child_end() accessors in place, but it's probably a substantial
penalty to grab the iterators individually now, since the
switch-based dispatch is kindof inherently slower than vtable
dispatch.  Grabbing them together is probably a slight win over the
status quo, although of course we could've achieved that with vtables, too.
I also reclassified SwitchCase (correctly) as an abstract Stmt
class, which (as the first such class that wasn't an Expr subclass)
required some fiddling in a few places.
There are somewhat gross metaprogramming hooks in place to ensure
that new statements/expressions continue to implement
getSourceRange() and children().  I had to work around a recent clang
bug;  dgregor actually fixed it already, but I didn't want to
introduce a selfhosting dependency on ToT.
llvm-svn: 125183 
							
						 
						
							2011-02-09 08:16:59 +00:00  
				
					
						
							
							
								 
						
							
								a40f8ebc83 
								
							 
						 
						
							
							
								
								static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes.  
							
							... 
							
							
							
							The optimization involves eagerly pruning ExplodedNodes from the ExplodedGraph that contain
practically no difference between the predecessor and successor nodes.  For example, if
the state is different between a predecessor and a node, the node is left in.  Only for
the 'environment' component of the state do we not care if the ExplodedNodes are different.
This paves the way for future optimizations where we can reclaim the environment objects.
llvm-svn: 125154 
							
						 
						
							2011-02-09 01:27:33 +00:00  
				
					
						
							
							
								 
						
							
								1953f97ac9 
								
							 
						 
						
							
							
								
								analyzer, retain/release checker: Remove hack where objects passed in message to 'self' are no longer tracked.  
							
							... 
							
							
							
							llvm-svn: 125130 
							
						 
						
							2011-02-08 22:54:26 +00:00  
				
					
						
							
							
								 
						
							
								fa0734ec4f 
								
							 
						 
						
							
							
								
								[analyzer] Move the files in lib/StaticAnalyzer to lib/StaticAnalyzer/Core.  
							
							... 
							
							
							
							Eventually there will also be a lib/StaticAnalyzer/Frontend that will handle initialization and checker registration.
Yet another library to avoid cyclic dependencies between Core and Checkers.
llvm-svn: 125124 
							
						 
						
							2011-02-08 22:30:36 +00:00  
				
					
						
							
							
								 
						
							
								4975170267 
								
							 
						 
						
							
							
								
								[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.cpp -> lib/StaticAnalyzer/Checkers/ExperimentalChecks.cpp  
							
							... 
							
							
							
							llvm-svn: 125123 
							
						 
						
							2011-02-08 22:30:15 +00:00  
				
					
						
							
							
								 
						
							
								f410a6299f 
								
							 
						 
						
							
							
								
								[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.h -> lib/StaticAnalyzer/Checkers/ExperimentalChecks.h  
							
							... 
							
							
							
							llvm-svn: 125122 
							
						 
						
							2011-02-08 22:30:11 +00:00  
				
					
						
							
							
								 
						
							
								f99d595cfd 
								
							 
						 
						
							
							
								
								[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineInternalChecks.h -> lib/StaticAnalyzer/Checkers/InternalChecks.h  
							
							... 
							
							
							
							llvm-svn: 125121 
							
						 
						
							2011-02-08 22:30:02 +00:00  
				
					
						
							
							
								 
						
							
								dd03d8ddaa 
								
							 
						 
						
							
							
								
								[analyzer] Fix a false positive of the 'self' initialization checker.  
							
							... 
							
							
							
							A common pattern in classes with multiple initializers is to put the
subclass's common initialization bits into a static function that receives
the value of 'self', e.g:
   if (!(self = [super init]))
     return nil;
   if (!(self = _commonInit(self)))
     return nil;
It was reported that 'self' was not set to the result of [super init].
Until we can use inter-procedural analysis, in such a call, transfer the
ObjCSelfInitChecker flags associated with 'self' to the result of the call.
Fixes rdar://8937441 & http://llvm.org/PR9094 
llvm-svn: 124940 
							
						 
						
							2011-02-05 05:54:53 +00:00  
				
					
						
							
							
								 
						
							
								58f8b590e1 
								
							 
						 
						
							
							
								
								[analyzer] Fix a crash until we can handle temporary struct objects properly.  
							
							... 
							
							
							
							llvm-svn: 124822 
							
						 
						
							2011-02-03 22:01:32 +00:00  
				
					
						
							
							
								 
						
							
								c63de66c4f 
								
							 
						 
						
							
							
								
								An insomniac stab at making block declarations list the variables they close  
							
							... 
							
							
							
							on, as well as more reliably limiting invalid references to locals from
nested scopes.
llvm-svn: 124721 
							
						 
						
							2011-02-02 13:00:07 +00:00  
				
					
						
							
							
								 
						
							
								c1b4534e42 
								
							 
						 
						
							
							
								
								Fix the message. Thanks to Thomas Clement for noticing.  
							
							... 
							
							
							
							llvm-svn: 124680 
							
						 
						
							2011-02-01 20:33:05 +00:00  
				
					
						
							
							
								 
						
							
								15a3daa189 
								
							 
						 
						
							
							
								
								[analyzer] Slightly improve the diagnostic message of ObjCSelfInitChecker.  
							
							... 
							
							
							
							llvm-svn: 124674 
							
						 
						
							2011-02-01 19:32:55 +00:00  
				
					
						
							
							
								 
						
							
								afe348ea43 
								
							 
						 
						
							
							
								
								Wire up attributes 'ns_consumed' and 'cf_consumed' in the static analyzer's ObjC retain/release checker.  
							
							... 
							
							
							
							llvm-svn: 124386 
							
						 
						
							2011-01-27 18:43:03 +00:00  
				
					
						
							
							
								 
						
							
								add754a02e 
								
							 
						 
						
							
							
								
								[analyzer] Fix crash when handling dot syntax on 'super'.  
							
							... 
							
							
							
							llvm-svn: 124376 
							
						 
						
							2011-01-27 16:17:11 +00:00  
				
					
						
							
							
								 
						
							
								f9cbcc4cc2 
								
							 
						 
						
							
							
								
								Fix whitespace.  
							
							... 
							
							
							
							llvm-svn: 124364 
							
						 
						
							2011-01-27 07:10:08 +00:00  
				
					
						
							
							
								 
						
							
								7c2888689d 
								
							 
						 
						
							
							
								
								7bit-ize.  
							
							... 
							
							
							
							llvm-svn: 124363 
							
						 
						
							2011-01-27 07:09:49 +00:00  
				
					
						
							
							
								 
						
							
								0e89838ced 
								
							 
						 
						
							
							
								
								Hook up attribute ns_consumes_self in the ObjC retain/release checker in the static analyzer.  
							
							... 
							
							
							
							llvm-svn: 124360 
							
						 
						
							2011-01-27 06:54:14 +00:00  
				
					
						
							
							
								 
						
							
								c7ffd35cb7 
								
							 
						 
						
							
							
								
								[analyzer] Enable the self-init checker under command-line option '-analyzer-check-objc-self-init' which by default  
							
							... 
							
							
							
							is enabled by the driver for '--analyze'.
llvm-svn: 124266 
							
						 
						
							2011-01-26 01:26:50 +00:00  
				
					
						
							
							
								 
						
							
								8781b7dded 
								
							 
						 
						
							
							
								
								[analyzer] Improve the diagnostic for the self-init checker. Suggestion by Ted!  
							
							... 
							
							
							
							llvm-svn: 124263 
							
						 
						
							2011-01-26 01:26:41 +00:00  
				
					
						
							
							
								 
						
							
								3ae681eb12 
								
							 
						 
						
							
							
								
								[analyzer] Do the self-init check only on NSObject subclasses. Patch by Jean-Daniel Dupas!  
							
							... 
							
							
							
							llvm-svn: 124249 
							
						 
						
							2011-01-25 23:54:44 +00:00  
				
					
						
							
							
								 
						
							
								fedad3c668 
								
							 
						 
						
							
							
								
								Don't try and symbolicate unions; we don't reason  
							
							... 
							
							
							
							about them yet.  Fixes crash reported in PR 9049.
llvm-svn: 124228 
							
						 
						
							2011-01-25 21:08:47 +00:00  
				
					
						
							
							
								 
						
							
								ade45d9703 
								
							 
						 
						
							
							
								
								Recycle memory for GRStates that are never referenced  
							
							... 
							
							
							
							by ExplodedNodes.  This leads to about a 4-8%
reduction in memory footprint when analyzing
functions in sqlite3.
llvm-svn: 124214 
							
						 
						
							2011-01-25 19:13:54 +00:00  
				
					
						
							
							
								 
						
							
								7fd987de23 
								
							 
						 
						
							
							
								
								Tweak wording of static analyzer diagnostic  
							
							... 
							
							
							
							for a block capturing the value of an uninitialized
variable.
llvm-svn: 124212 
							
						 
						
							2011-01-25 19:13:42 +00:00  
				
					
						
							
							
								 
						
							
								ffb08c46fa 
								
							 
						 
						
							
							
								
								[analyzer] Handle the dot syntax for properties in the ExprEngine.  
							
							... 
							
							
							
							We translate property accesses to obj-c messages by simulating "loads" or "stores" to properties
using a pseudo-location SVal kind (ObjCPropRef).
Checkers can now reason about obj-c messages for both explicit message expressions and implicit
messages due to property accesses.
llvm-svn: 124161 
							
						 
						
							2011-01-25 00:04:03 +00:00  
				
					
						
							
							
								 
						
							
								fdbcd54658 
								
							 
						 
						
							
							
								
								[analyzer] Introduce ExprEngine::VisitObjCMessage for handling general ObjCMessages (both message expressions and property access)  
							
							... 
							
							
							
							and use it in ExprEngine::VisitObjCMessageExpr.
llvm-svn: 124160 
							
						 
						
							2011-01-25 00:03:57 +00:00  
				
					
						
							
							
								 
						
							
								37ab726d63 
								
							 
						 
						
							
							
								
								[analyzer] Introduce ObjCMessage which represents both explicit ObjC message expressions and implicit  
							
							... 
							
							
							
							messages that are sent for handling properties in dot syntax.
Replace all direct uses of ObjCMessageExpr in the checkers and checker interface with ObjCMessage.
llvm-svn: 124159 
							
						 
						
							2011-01-25 00:03:53 +00:00  
				
					
						
							
							
								 
						
							
								8e169a5f18 
								
							 
						 
						
							
							
								
								[analyzer] Simplify GetReceiverType function in BasicObjCFoundationChecks.cpp; no functionality change.  
							
							... 
							
							
							
							llvm-svn: 124157 
							
						 
						
							2011-01-25 00:03:45 +00:00  
				
					
						
							
							
								 
						
							
								c28614cec4 
								
							 
						 
						
							
							
								
								Use CharUnits for the offset amount of RegionRawOffset.  
							
							... 
							
							
							
							llvm-svn: 124093 
							
						 
						
							2011-01-24 01:55:39 +00:00  
				
					
						
							
							
								 
						
							
								a1ec4f39f4 
								
							 
						 
						
							
							
								
								Enhance AnalysisConsumer to also visit functions  
							
							... 
							
							
							
							and methods defined within 'namespace X { ... }'.
llvm-svn: 123921 
							
						 
						
							2011-01-20 17:09:48 +00:00  
				
					
						
							
							
								 
						
							
								424cec97bd 
								
							 
						 
						
							
							
								
								Change QualType::getTypePtr() to return a const pointer, then change a  
							
							... 
							
							
							
							thousand other things which were (generally inadvertantly) relying on that.
llvm-svn: 123814 
							
						 
						
							2011-01-19 06:33:43 +00:00  
				
					
						
							
							
								 
						
							
								8dfa5f1776 
								
							 
						 
						
							
							
								
								Fix warnings found by gcc-4.6, from -Wunused-but-set-variable and  
							
							... 
							
							
							
							-Wint-to-pointer-cast.
llvm-svn: 123719 
							
						 
						
							2011-01-18 02:00:16 +00:00  
				
					
						
							
							
								 
						
							
								45e84b0053 
								
							 
						 
						
							
							
								
								NetBSD, OpenBSD, and Dragonfly BSD also have arc4random. Patch from  
							
							... 
							
							
							
							Joerg Sonnenberger!
llvm-svn: 123669 
							
						 
						
							2011-01-17 19:16:24 +00:00  
				
					
						
							
							
								 
						
							
								cdbc539aee 
								
							 
						 
						
							
							
								
								Introduce a new expression kind, SubstNonTypeTemplateParmPackExpr,  
							
							... 
							
							
							
							that captures the substitution of a non-type template argument pack
for a non-type template parameter pack within a pack expansion that
cannot be fully expanded. This follows the approach taken by
SubstTemplateTypeParmPackType.
llvm-svn: 123506 
							
						 
						
							2011-01-15 01:15:58 +00:00  
				
					
						
							
							
								 
						
							
								8cb349de80 
								
							 
						 
						
							
							
								
								Cleanup confused code that redundantly called "getDeclContext()" twice.  
							
							... 
							
							
							
							Found by clang static analyzer.
llvm-svn: 123485 
							
						 
						
							2011-01-14 22:31:41 +00:00  
				
					
						
							
							
								 
						
							
								44e2c5cdd9 
								
							 
						 
						
							
							
								
								Rename 'RemoveDeadBindings()' to 'removeDeadBindings()'  
							
							... 
							
							
							
							llvm-svn: 123460 
							
						 
						
							2011-01-14 20:34:15 +00:00  
				
					
						
							
							
								 
						
							
								7c211625e0 
								
							 
						 
						
							
							
								
								Rename 'EnterStackFrame()' to 'enterStackFrame()'.  
							
							... 
							
							
							
							llvm-svn: 123459 
							
						 
						
							2011-01-14 20:34:10 +00:00  
				
					
						
							
							
								 
						
							
								95d874fa5d 
								
							 
						 
						
							
							
								
								Teach RegionStore::EnterStackFrame() to handle  
							
							... 
							
							
							
							the case where the called function has fewer
formal arguments than actual arguments.  This
fixes a crash in the analyzer when doing
function call inlining.
Patch by Zhenbo Xu!
llvm-svn: 123458 
							
						 
						
							2011-01-14 20:29:43 +00:00  
				
					
						
							
							
								 
						
							
								c7ed09378e 
								
							 
						 
						
							
							
								
								Rename 'CheckDeadStores.cpp' to 'DeadStoresChecker.cpp'.  
							
							... 
							
							
							
							llvm-svn: 123395 
							
						 
						
							2011-01-13 20:58:59 +00:00  
				
					
						
							
							
								 
						
							
								f224820b45 
								
							 
						 
						
							
							
								
								Remove warning in dead stores checker for  
							
							... 
							
							
							
							dead stores within nested assignments.  I have
never seen an actual bug found by this specific
warning, and it can lead to many false positives.
llvm-svn: 123394 
							
						 
						
							2011-01-13 20:58:56 +00:00  
				
					
						
							
							
								 
						
							
								3a3c0fd2d1 
								
							 
						 
						
							
							
								
								CXXBaseObjectRegion is like FieldRegion. Need to blast through it when  
							
							... 
							
							
							
							getting the base region. This makes the RemoveDeadBindings() correct.
llvm-svn: 123375 
							
						 
						
							2011-01-13 12:46:31 +00:00  
				
					
						
							
							
								 
						
							
								0d87e0c65b 
								
							 
						 
						
							
							
								
								Support inlining base initializers. We still haven't got it completely right,  
							
							... 
							
							
							
							since the bindings are purged after they are set up. Need to investigate
RemoveDeadBindings algorithm.
llvm-svn: 123374 
							
						 
						
							2011-01-13 12:30:12 +00:00  
				
					
						
							
							
								 
						
							
								304b6e4aa1 
								
							 
						 
						
							
							
								
								Fix a corner case in RegionStore where we assign  
							
							... 
							
							
							
							a struct value to a symbolic index into array.
RegionStore can't actually reason about this,
so we were getting bogus warnings about loading
uninitialized values from the array.  The solution
is invalidate the entire array when we cannot
represent the binding explicitly.
Fixes <rdar://problem/8848957>
llvm-svn: 123368 
							
						 
						
							2011-01-13 06:58:15 +00:00  
				
					
						
							
							
								 
						
							
								f41bdd7c24 
								
							 
						 
						
							
							
								
								Rename 'HasGeneratedNode' to 'hasGeneratedNode'  
							
							... 
							
							
							
							and 'getBasePredecessor()' to 'getPredecessor()'.
Also remove a unneeded save-and-restore of
node builder's tag field.
llvm-svn: 123363 
							
						 
						
							2011-01-13 04:36:46 +00:00  
				
					
						
							
							
								 
						
							
								b86ec25256 
								
							 
						 
						
							
							
								
								Remove unnecessary save-and-restore of the  
							
							... 
							
							
							
							node builder's 'HasGeneratedNode' field.
llvm-svn: 123362 
							
						 
						
							2011-01-13 04:36:40 +00:00  
				
					
						
							
							
								 
						
							
								f044bd68e1 
								
							 
						 
						
							
							
								
								Remove CheckerContext's dependence on setting  
							
							... 
							
							
							
							the node builder's "tag" ivar (which we would
like to remove).
llvm-svn: 123361 
							
						 
						
							2011-01-13 04:36:36 +00:00  
				
					
						
							
							
								 
						
							
								ebbeb79234 
								
							 
						 
						
							
							
								
								Add some documentation for C++ static analyzer.  
							
							... 
							
							
							
							llvm-svn: 123313 
							
						 
						
							2011-01-12 07:20:03 +00:00  
				
					
						
							
							
								 
						
							
								4b7433fab2 
								
							 
						 
						
							
							
								
								[analyzer] Introduce ObjCSelfInitChecker, which checks initialization methods to verify that they assign 'self' to the  
							
							... 
							
							
							
							result of an initialization call (e.g. [super init], or [self initWith..]) before using any instance variable or
returning 'self'.
llvm-svn: 123264 
							
						 
						
							2011-01-11 19:45:25 +00:00  
				
					
						
							
							
								 
						
							
								9c23e6c689 
								
							 
						 
						
							
							
								
								[analyzer] Support post-visiting ObjCIvarRefExprs for checkers.  
							
							... 
							
							
							
							llvm-svn: 123263 
							
						 
						
							2011-01-11 19:45:20 +00:00  
				
					
						
							
							
								 
						
							
								1790c975e7 
								
							 
						 
						
							
							
								
								[analyzer] Add 'isLoad' parameter in Checker::visitLocation() to conveniently distinguish between loads/stores.  
							
							... 
							
							
							
							llvm-svn: 123261 
							
						 
						
							2011-01-11 19:45:13 +00:00  
				
					
						
							
							
								 
						
							
								841df11dab 
								
							 
						 
						
							
							
								
								Remove ProgramPoint parameter from GenericNodeBuilder::generateNode().  
							
							... 
							
							
							
							llvm-svn: 123240 
							
						 
						
							2011-01-11 16:53:44 +00:00  
				
					
						
							
							
								 
						
							
								9b76fa9b07 
								
							 
						 
						
							
							
								
								Rename GenericNodeBuilder to GenericNodeBuilderRefCount to avoid namespace clash using MSVC.  
							
							... 
							
							
							
							llvm-svn: 123228 
							
						 
						
							2011-01-11 10:41:37 +00:00  
				
					
						
							
							
								 
						
							
								a00bccc0c5 
								
							 
						 
						
							
							
								
								Rework ExprEngine::processCFGBlockEntrance()  
							
							... 
							
							
							
							to use a node builder.  This paves the way
for Checkers to interpose (via a "visit" method)
at the entrance to blocks.
llvm-svn: 123217 
							
						 
						
							2011-01-11 06:37:47 +00:00  
				
					
						
							
							
								 
						
							
								f82068a994 
								
							 
						 
						
							
							
								
								Remove several silly methods from ento::CoreEngine  
							
							... 
							
							
							
							that just forwarded to ento::SubEngine.
llvm-svn: 123216 
							
						 
						
							2011-01-11 04:49:40 +00:00  
				
					
						
							
							
								 
						
							
								f4ef3d3ca1 
								
							 
						 
						
							
							
								
								Rename misc. methods in ento::Worklist to start  
							
							... 
							
							
							
							with lowercase letter.
llvm-svn: 123212 
							
						 
						
							2011-01-11 02:34:50 +00:00  
				
					
						
							
							
								 
						
							
								926c96211e 
								
							 
						 
						
							
							
								
								Rename misc. methods in GRSubEngine to start  
							
							... 
							
							
							
							with a lower-case letter.  No functionality change.
llvm-svn: 123211 
							
						 
						
							2011-01-11 02:34:45 +00:00  
				
					
						
							
							
								 
						
							
								e503f89b4b 
								
							 
						 
						
							
							
								
								Replace all uses of PathV1::isDirectory with PathV2::fs::is_directory.  
							
							... 
							
							
							
							llvm-svn: 123208 
							
						 
						
							2011-01-11 01:21:20 +00:00  
				
					
						
							
							
								 
						
							
								fb060c9014 
								
							 
						 
						
							
							
								
								Fix CMakeLists.txt.  
							
							... 
							
							
							
							llvm-svn: 123167 
							
						 
						
							2011-01-10 09:33:41 +00:00  
				
					
						
							
							
								 
						
							
								40c9d8a4c5 
								
							 
						 
						
							
							
								
								Revert r123160. There are linking dependency problems.  
							
							... 
							
							
							
							llvm-svn: 123166 
							
						 
						
							2011-01-10 09:23:01 +00:00  
				
					
						
							
							
								 
						
							
								eff85ad41b 
								
							 
						 
						
							
							
								
								Unbreak the CMake build.  
							
							... 
							
							
							
							llvm-svn: 123162 
							
						 
						
							2011-01-10 07:26:53 +00:00  
				
					
						
							
							
								 
						
							
								7d4ab7d915 
								
							 
						 
						
							
							
								
								ExprEngine.cpp and AnalysisConsumer.cpp should not be in the Checkers directory.  
							
							... 
							
							
							
							llvm-svn: 123160 
							
						 
						
							2011-01-10 05:52:42 +00:00  
				
					
						
							
							
								 
						
							
								5609e21337 
								
							 
						 
						
							
							
								
								In C++, assignment and compound assignment operators return an lvalue.  
							
							... 
							
							
							
							llvm-svn: 123158 
							
						 
						
							2011-01-10 03:54:19 +00:00  
				
					
						
							
							
								 
						
							
								0710f5c5e1 
								
							 
						 
						
							
							
								
								The isPrefix() checking is redundant. Lvalue incremental/decremental expressions  
							
							... 
							
							
							
							are all prefixes.
llvm-svn: 123156 
							
						 
						
							2011-01-10 03:22:57 +00:00  
				
					
						
							
							
								 
						
							
								1d7926502f 
								
							 
						 
						
							
							
								
								Renamed CXXBaseOrMemberInitializer to CXXCtorInitializer. This is both shorter,  
							
							... 
							
							
							
							more accurate, and makes it make sense for it to hold a delegating constructor
call.
llvm-svn: 123084 
							
						 
						
							2011-01-08 20:30:50 +00:00  
				
					
						
							
							
								 
						
							
								35c7e84eb7 
								
							 
						 
						
							
							
								
								There is nothing interesting to analyze with a sizeof...(pack) expression  
							
							... 
							
							
							
							llvm-svn: 122818 
							
						 
						
							2011-01-04 18:46:34 +00:00  
				
					
						
							
							
								 
						
							
								e8e9dd624c 
								
							 
						 
						
							
							
								
								Implement support for pack expansions whose pattern is a non-type  
							
							... 
							
							
							
							template argument (described by an expression, of course). For
example:
  template<int...> struct int_tuple { };
  template<int ...Values>
  struct square {
    typedef int_tuple<(Values*Values)...> type;
  };
It also lays the foundation for pack expansions in an initializer-list.
  
llvm-svn: 122751 
							
						 
						
							2011-01-03 17:17:50 +00:00  
				
					
						
							
							
								 
						
							
								2835efdc75 
								
							 
						 
						
							
							
								
								Set LLVM_NO_RTTI and LLVM_USED_LIBS for clangStaticAnalyzerCheckers  
							
							... 
							
							
							
							Patch by arrowdodger!
llvm-svn: 122747 
							
						 
						
							2011-01-03 14:53:25 +00:00  
				
					
						
							
							
								 
						
							
								5614c46fcf 
								
							 
						 
						
							
							
								
								Add basic support for pointer arithmetic in  
							
							... 
							
							
							
							SimpleSValBuilder.  This clears up some
false positives emitted by ArrayBoundCheckerV2
due to the lack of support for pointer arithmetic.
llvm-svn: 122546 
							
						 
						
							2010-12-24 08:39:33 +00:00  
				
					
						
							
							
								 
						
							
								9d6af5328e 
								
							 
						 
						
							
							
								
								Remove the EntoSA directories.  
							
							... 
							
							
							
							llvm-svn: 122543 
							
						 
						
							2010-12-24 06:19:58 +00:00  
				
					
						
							
							
								 
						
							
								d99bd55a5e 
								
							 
						 
						
							
							
								
								Chris Lattner has strong opinions about directory  
							
							... 
							
							
							
							layout.  :)
Rename the 'EntoSA' directories to 'StaticAnalyzer'.
Internally we will still use the 'ento' namespace
for the analyzer engine (unless there are further
sabre rattlings...).
llvm-svn: 122514 
							
						 
						
							2010-12-23 19:38:26 +00:00