Limit access end-of-struct warning a bit
Only warn if the struct has a non-zero size.  You can't create objects
of zero-sized structs, but they can be used inside sizeof (e.g.
"sizeof (struct {int :0;})".  The warning would always trigger for these,
but as no objects can be created no accesses can ever happen.
			
			
This commit is contained in:
		
							parent
							
								
									7cd1ae7710
								
							
						
					
					
						commit
						31e5ad789a
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		
							
								
								
									
										2
									
								
								tccgen.c
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								tccgen.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -3471,7 +3471,7 @@ static void struct_layout(CType *type, AttributeDef *ad)
 | 
			
		|||
    type->ref->c = (c + (pcc ? (bit_pos + 7) >> 3 : 0)
 | 
			
		||||
		    + maxalign - 1) & -maxalign;
 | 
			
		||||
    type->ref->r = maxalign;
 | 
			
		||||
    if (offset + size > type->ref->c)
 | 
			
		||||
    if (offset + size > type->ref->c && type->ref->c)
 | 
			
		||||
        tcc_warning("will touch memory past end of the struct (internal limitation)");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue