Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								8e169a5f18 
								
							 
						 
						
							
							
								
								[analyzer] Simplify GetReceiverType function in BasicObjCFoundationChecks.cpp; no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 124157 
							
						 
						
							2011-01-25 00:03:45 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								c28614cec4 
								
							 
						 
						
							
							
								
								Use CharUnits for the offset amount of RegionRawOffset.  
							
							 
							
							... 
							
							
							
							llvm-svn: 124093 
							
						 
						
							2011-01-24 01:55:39 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								a1ec4f39f4 
								
							 
						 
						
							
							
								
								Enhance AnalysisConsumer to also visit functions  
							
							 
							
							... 
							
							
							
							and methods defined within 'namespace X { ... }'.
llvm-svn: 123921 
							
						 
						
							2011-01-20 17:09:48 +00:00  
						
					 
				
					
						
							
							
								 
								John McCall
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Jeffrey Yasskin
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								45e84b0053 
								
							 
						 
						
							
							
								
								NetBSD, OpenBSD, and Dragonfly BSD also have arc4random. Patch from  
							
							 
							
							... 
							
							
							
							Joerg Sonnenberger!
llvm-svn: 123669 
							
						 
						
							2011-01-17 19:16:24 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								44e2c5cdd9 
								
							 
						 
						
							
							
								
								Rename 'RemoveDeadBindings()' to 'removeDeadBindings()'  
							
							 
							
							... 
							
							
							
							llvm-svn: 123460 
							
						 
						
							2011-01-14 20:34:15 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								7c211625e0 
								
							 
						 
						
							
							
								
								Rename 'EnterStackFrame()' to 'enterStackFrame()'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123459 
							
						 
						
							2011-01-14 20:34:10 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								c7ed09378e 
								
							 
						 
						
							
							
								
								Rename 'CheckDeadStores.cpp' to 'DeadStoresChecker.cpp'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123395 
							
						 
						
							2011-01-13 20:58:59 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								b86ec25256 
								
							 
						 
						
							
							
								
								Remove unnecessary save-and-restore of the  
							
							 
							
							... 
							
							
							
							node builder's 'HasGeneratedNode' field.
llvm-svn: 123362 
							
						 
						
							2011-01-13 04:36:40 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								ebbeb79234 
								
							 
						 
						
							
							
								
								Add some documentation for C++ static analyzer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123313 
							
						 
						
							2011-01-12 07:20:03 +00:00  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								9c23e6c689 
								
							 
						 
						
							
							
								
								[analyzer] Support post-visiting ObjCIvarRefExprs for checkers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123263 
							
						 
						
							2011-01-11 19:45:20 +00:00  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								841df11dab 
								
							 
						 
						
							
							
								
								Remove ProgramPoint parameter from GenericNodeBuilder::generateNode().  
							
							 
							
							... 
							
							
							
							llvm-svn: 123240 
							
						 
						
							2011-01-11 16:53:44 +00:00  
						
					 
				
					
						
							
							
								 
								Francois Pichet
							
						 
						
							 
							
							
							
							
								
							
							
								9b76fa9b07 
								
							 
						 
						
							
							
								
								Rename GenericNodeBuilder to GenericNodeBuilderRefCount to avoid namespace clash using MSVC.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123228 
							
						 
						
							2011-01-11 10:41:37 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								f4ef3d3ca1 
								
							 
						 
						
							
							
								
								Rename misc. methods in ento::Worklist to start  
							
							 
							
							... 
							
							
							
							with lowercase letter.
llvm-svn: 123212 
							
						 
						
							2011-01-11 02:34:50 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Michael J. Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								e503f89b4b 
								
							 
						 
						
							
							
								
								Replace all uses of PathV1::isDirectory with PathV2::fs::is_directory.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123208 
							
						 
						
							2011-01-11 01:21:20 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								fb060c9014 
								
							 
						 
						
							
							
								
								Fix CMakeLists.txt.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123167 
							
						 
						
							2011-01-10 09:33:41 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								40c9d8a4c5 
								
							 
						 
						
							
							
								
								Revert r123160. There are linking dependency problems.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123166 
							
						 
						
							2011-01-10 09:23:01 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								eff85ad41b 
								
							 
						 
						
							
							
								
								Unbreak the CMake build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123162 
							
						 
						
							2011-01-10 07:26:53 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								7d4ab7d915 
								
							 
						 
						
							
							
								
								ExprEngine.cpp and AnalysisConsumer.cpp should not be in the Checkers directory.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123160 
							
						 
						
							2011-01-10 05:52:42 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								5609e21337 
								
							 
						 
						
							
							
								
								In C++, assignment and compound assignment operators return an lvalue.  
							
							 
							
							... 
							
							
							
							llvm-svn: 123158 
							
						 
						
							2011-01-10 03:54:19 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								0710f5c5e1 
								
							 
						 
						
							
							
								
								The isPrefix() checking is redundant. Lvalue incremental/decremental expressions  
							
							 
							
							... 
							
							
							
							are all prefixes.
llvm-svn: 123156 
							
						 
						
							2011-01-10 03:22:57 +00:00  
						
					 
				
					
						
							
							
								 
								Alexis Hunt
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								35c7e84eb7 
								
							 
						 
						
							
							
								
								There is nothing interesting to analyze with a sizeof...(pack) expression  
							
							 
							
							... 
							
							
							
							llvm-svn: 122818 
							
						 
						
							2011-01-04 18:46:34 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Oscar Fuentes
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								9d6af5328e 
								
							 
						 
						
							
							
								
								Remove the EntoSA directories.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122543 
							
						 
						
							2010-12-24 06:19:58 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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