Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								ca143e73ea 
								
							 
						 
						
							
							
								
								Fix PR4182.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71288 
							
						 
						
							2009-05-08 23:28:07 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								d2e8fa14df 
								
							 
						 
						
							
							
								
								Region store: when casting VarRegions, if the cast-to pointee type is  
							
							 
							
							... 
							
							
							
							incomplete, do not compute its size and return the original region.
llvm-svn: 71213 
							
						 
						
							2009-05-08 07:28:25 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								afc875c766 
								
							 
						 
						
							
							
								
								Replace the heuristic isSmallerThan with ASTContext::getTypeSize().  
							
							 
							
							... 
							
							
							
							llvm-svn: 71206 
							
						 
						
							2009-05-08 02:12:59 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								c0c074655d 
								
							 
						 
						
							
							
								
								Replace getTypeWidth() with ASTContext::getTypeSize().  
							
							 
							
							... 
							
							
							
							llvm-svn: 71205 
							
						 
						
							2009-05-08 02:00:55 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								1ba79dfeea 
								
							 
						 
						
							
							
								
								Revert r71079.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71202 
							
						 
						
							2009-05-08 01:33:18 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								ea8c48d5a1 
								
							 
						 
						
							
							
								
								Improve RegionStoreManager::getSizeInElements()  
							
							 
							
							... 
							
							
							
							- add a static function getTypeWidth(), which computes the width of a type
   with the help of TargetInfo.
 - no-outofbounds.c now passes for region store.
llvm-svn: 71080 
							
						 
						
							2009-05-06 11:51:48 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								c98868136f 
								
							 
						 
						
							
							
								
								Add a GDM for recording the cast type of regions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71076 
							
						 
						
							2009-05-06 08:33:50 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								1813e23a52 
								
							 
						 
						
							
							
								
								Implement a heuristic type size comparison method for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71074 
							
						 
						
							2009-05-06 08:08:27 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								b2d4a52e3f 
								
							 
						 
						
							
							
								
								remove commented code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71060 
							
						 
						
							2009-05-06 02:54:11 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								d5e09be293 
								
							 
						 
						
							
							
								
								Make StoreManager::CastRegion() virtual and implement a new CastRegion() for  
							
							 
							
							... 
							
							
							
							RegionStore.
This CastRegion() performs casts according to the kind of the region being 
cast instead of the type that is cast to.
llvm-svn: 71058 
							
						 
						
							2009-05-06 02:42:32 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								02e508960c 
								
							 
						 
						
							
							
								
								Per conversations with Zhongxing, add an 'element type' to  
							
							 
							
							... 
							
							
							
							ElementRegion.  I also removed 'ElementRegion::getArrayRegion',
although we may need to add this back.
This breaks a few test cases with RegionStore:
- 'array-struct.c' triggers an infinite recursion in RegionStoreManager.  Need to investigate.
- misc-ps.m triggers a failure with RegionStoreManager as we now get the diagnostic:
  'Line 159: Uninitialized or undefined return value returned to caller.'
  
There were a bunch of places that needed to be edit
RegionStoreManager, and we may not be passing all the correct 'element
types' down from GRExprEngine.
Zhongxing: When you get a chance, could you review this?  I could have
easily screwed up something basic in RegionStoreManager.
llvm-svn: 70830 
							
						 
						
							2009-05-04 06:18:28 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								3e3e69bbe7 
								
							 
						 
						
							
							
								
								region store: make Retrieve() can retrieve embedded array correctly. Also  
							
							 
							
							... 
							
							
							
							simplify the retrieve logic.
llvm-svn: 70651 
							
						 
						
							2009-05-03 00:27:40 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								f985648e83 
								
							 
						 
						
							
							
								
								SymbolicRegions may also be live roots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70380 
							
						 
						
							2009-04-29 09:24:35 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								2d495a6f43 
								
							 
						 
						
							
							
								
								Refactor 'BasicStoreManager::CastRegion' and 'RegionStoreManager::CastRegion'  
							
							 
							
							... 
							
							
							
							into StoreManager::CastRegion. Both methods were practically identical, and this
is core logic that is common to all StoreManagers since it defines the basic
invariants of the abstract memory model.
llvm-svn: 69730 
							
						 
						
							2009-04-21 21:51:34 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								3070210377 
								
							 
						 
						
							
							
								
								Remove loc::FuncVal.  
							
							 
							
							... 
							
							
							
							llvm-svn: 69577 
							
						 
						
							2009-04-20 06:35:22 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								dadf250598 
								
							 
						 
						
							
							
								
								Finally nuke loc::SymbolVal.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68771 
							
						 
						
							2009-04-10 06:06:13 +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  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								ec7e7dfe0a 
								
							 
						 
						
							
							
								
								This is the first step to gradually remove the use of loc::SymbolVal. Now  
							
							 
							
							... 
							
							
							
							when creating symbolic values, we distinguish between location and non-location
values. For location values, we create a symbolic region instead of a
loc::SymbolVal.
llvm-svn: 68373 
							
						 
						
							2009-04-03 07:33:13 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								7857bd2743 
								
							 
						 
						
							
							
								
								Re-apply 68028. The code had drifted enough that the tests would fail without  
							
							 
							
							... 
							
							
							
							it.  Will discuss offline whether symbolic regions should by typed or typeless.
llvm-svn: 68070 
							
						 
						
							2009-03-30 22:20:54 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								5715393da2 
								
							 
						 
						
							
							
								
								Revert 68028.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68068 
							
						 
						
							2009-03-30 21:56:17 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								5415b207e3 
								
							 
						 
						
							
							
								
								Make SymbolicRegion untyped.  
							
							 
							
							... 
							
							
							
							Layer the type information with a TypedViewRegion on top of the SymbolicRegion.
llvm-svn: 68028 
							
						 
						
							2009-03-30 06:48:56 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								a865b79f87 
								
							 
						 
						
							
							
								
								Implement a FIXME.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68024 
							
						 
						
							2009-03-30 05:55:46 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								17e28b7a54 
								
							 
						 
						
							
							
								
								remove dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 67825 
							
						 
						
							2009-03-27 05:31:12 +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  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								17299e6172 
								
							 
						 
						
							
							
								
								Use a work list to recursively build up the subregion mapping, and mark live  
							
							 
							
							... 
							
							
							
							var region roots.
llvm-svn: 67152 
							
						 
						
							2009-03-18 01:54:31 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0bf152ef0b 
								
							 
						 
						
							
							
								
								Updated comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66894 
							
						 
						
							2009-03-13 15:39:16 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								ec94f08dce 
								
							 
						 
						
							
							
								
								Fix failure reported by Sebastian of test/Analysis/ptr-arith.c when the target  
							
							 
							
							... 
							
							
							
							is 64-bit. I used his suggestion of doing a direct bitwidth/signedness
conversion of the 'offset' instead of just changing the sign. For more
information, see:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-March/004587.html 
llvm-svn: 66892 
							
						 
						
							2009-03-13 15:35:24 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								5a6fee9fb8 
								
							 
						 
						
							
							
								
								Use getAsRecordType() to get around sugar types.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66768 
							
						 
						
							2009-03-12 03:45:35 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								d2e89ae055 
								
							 
						 
						
							
							
								
								Do not stipulate the record type is a definition in BindStruct().  
							
							 
							
							... 
							
							
							
							llvm-svn: 66654 
							
						 
						
							2009-03-11 09:07:35 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								507202ecb7 
								
							 
						 
						
							
							
								
								Fix crash when LHS of pointer arithmetic is not ElementRegion.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66649 
							
						 
						
							2009-03-11 07:43:49 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								90e213f025 
								
							 
						 
						
							
							
								
								RegionStore::getLValueElement: Handle the case where the signedness of the  
							
							 
							
							... 
							
							
							
							offset may be different that the base. Ultimately we need a better solution for
these issues, but this point-by-point fixes are gradually outlining the scope of
the problem.
llvm-svn: 66638 
							
						 
						
							2009-03-11 04:04:20 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								0603222888 
								
							 
						 
						
							
							
								
								RegionStore::getElementLValue(): Handle the case where the base is a null pointer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66486 
							
						 
						
							2009-03-09 22:44:49 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								7219d1bada 
								
							 
						 
						
							
							
								
								Only track integer and pointer values.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66419 
							
						 
						
							2009-03-09 09:31:22 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								ce270a6dbc 
								
							 
						 
						
							
							
								
								Now we do not retrieve untyped regions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66418 
							
						 
						
							2009-03-09 09:15:51 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								b09280bcc0 
								
							 
						 
						
							
							
								
								Fix a serious bug in RegionStore: we got the new state with new store from  
							
							 
							
							... 
							
							
							
							Bind() and BindStruct(), but we returned a state with the old store.
llvm-svn: 66409 
							
						 
						
							2009-03-09 06:49:50 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								d3c82768e4 
								
							 
						 
						
							
							
								
								Add initial support for tracking ivars, with special handling for ivars of 'self'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66133 
							
						 
						
							2009-03-05 04:50:08 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								52170722ec 
								
							 
						 
						
							
							
								
								RegionStore: Handle implicit parameters.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65987 
							
						 
						
							2009-03-04 00:23:05 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								67c710e2c8 
								
							 
						 
						
							
							
								
								RegionStore::RemoveDeadBindings needs to check all the symbols of the super region of a scanned region as well.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65981 
							
						 
						
							2009-03-04 00:11:38 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								9f276d6279 
								
							 
						 
						
							
							
								
								Don't use std::auto_ptr with getSubRegionMap().  
							
							 
							
							... 
							
							
							
							llvm-svn: 65957 
							
						 
						
							2009-03-03 19:02:42 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								4c8a5817a5 
								
							 
						 
						
							
							
								
								Implement FIXME: GRStateManager::scanReachableSymbols now supports scanning MemRegions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65919 
							
						 
						
							2009-03-03 02:51:43 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								8dc671cdc9 
								
							 
						 
						
							
							
								
								Add StoreManager::getSubRegionMap().  This method returns an opaque mapping for clients of StoreManagers from MemRegions to their subregions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65914 
							
						 
						
							2009-03-03 01:35:36 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								57359cad17 
								
							 
						 
						
							
							
								
								remove an implemented fixme.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65817 
							
						 
						
							2009-03-02 08:25:09 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								e7d1493216 
								
							 
						 
						
							
							
								
								Initial support for pointer arithmetic. Only support concrete indexes and  
							
							 
							
							... 
							
							
							
							offsets for now.
llvm-svn: 65814 
							
						 
						
							2009-03-02 07:52:23 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								07e95680fd 
								
							 
						 
						
							
							
								
								Rename AnonTypedRegion to TypedViewRegion.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65764 
							
						 
						
							2009-03-01 05:44:08 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								cce27f5502 
								
							 
						 
						
							
							
								
								Fix <rdar://problem/6611677>: Add basic transfer function support in the static  
							
							 
							
							... 
							
							
							
							analyzer for array subscript expressions involving bases that are vectors. This
solution is probably a hack: it gets the lvalue of the vector instead of an
rvalue like all other types. This should be reviewed (big FIXME in
GRExprEngine).
llvm-svn: 65366 
							
						 
						
							2009-02-24 02:23:11 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								617bc3d02e 
								
							 
						 
						
							
							
								
								Add an example in comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65110 
							
						 
						
							2009-02-20 05:19:30 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								69aac369c3 
								
							 
						 
						
							
							
								
								only track integer and pointer values for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65041 
							
						 
						
							2009-02-19 09:56:08 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								f74ab25e22 
								
							 
						 
						
							
							
								
								Convert the offset to signed before making an ElementRegion with it. It seems  
							
							 
							
							... 
							
							
							
							that this problem arises from time to time. We should find a fundamental 
solution for it.
llvm-svn: 65035 
							
						 
						
							2009-02-19 08:37:16 +00:00  
						
					 
				
					
						
							
							
								 
								Zhongxing Xu
							
						 
						
							 
							
							
							
							
								
							
							
								e42755334c 
								
							 
						 
						
							
							
								
								SymbolicRegions really have unknown sizes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63929 
							
						 
						
							2009-02-06 08:51:30 +00:00