Get the canonical type for struct initialization. The original code would crash on TypedefType.
llvm-svn: 58236
This commit is contained in:
		
							parent
							
								
									b32af436df
								
							
						
					
					
						commit
						bb18b57f53
					
				| 
						 | 
					@ -233,6 +233,9 @@ SVal RegionStoreManager::Retrieve(Store S, Loc L, QualType T) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Store RegionStoreManager::Bind(Store store, Loc LV, SVal V) {
 | 
					Store RegionStoreManager::Bind(Store store, Loc LV, SVal V) {
 | 
				
			||||||
 | 
					  if (LV.getSubKind() == loc::SymbolValKind)
 | 
				
			||||||
 | 
					    return store;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  assert(LV.getSubKind() == loc::MemRegionKind);
 | 
					  assert(LV.getSubKind() == loc::MemRegionKind);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const MemRegion* R = cast<loc::MemRegionVal>(LV).getRegion();
 | 
					  const MemRegion* R = cast<loc::MemRegionVal>(LV).getRegion();
 | 
				
			||||||
| 
						 | 
					@ -373,7 +376,8 @@ Store RegionStoreManager::InitializeArrayToUndefined(Store store, QualType T,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Store RegionStoreManager::InitializeStructToUndefined(Store store, QualType T,
 | 
					Store RegionStoreManager::InitializeStructToUndefined(Store store, QualType T,
 | 
				
			||||||
                                                      MemRegion* BaseR) {
 | 
					                                                      MemRegion* BaseR) {
 | 
				
			||||||
  const RecordType* RT = cast<RecordType>(T.getTypePtr());
 | 
					  QualType CT = T->getCanonicalTypeInternal();
 | 
				
			||||||
 | 
					  const RecordType* RT = cast<RecordType>(CT.getTypePtr());
 | 
				
			||||||
  RecordDecl* RD = RT->getDecl();
 | 
					  RecordDecl* RD = RT->getDecl();
 | 
				
			||||||
  assert(RD->isDefinition());
 | 
					  assert(RD->isDefinition());
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue