fixed bug with 0L; don't give warning on char x[3] = "abc"
This commit is contained in:
		
							parent
							
								
									ba6c223113
								
							
						
					
					
						commit
						d7d56d2cbb
					
				
					 2 changed files with 9 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -806,7 +806,7 @@ struct token *ptok;
 | 
			
		|||
			fund = LONG;
 | 
			
		||||
		else	fund = UNSIGNED;
 | 
			
		||||
	} else if((val & full_mask[(int)long_size]) == val) {
 | 
			
		||||
		if (val > 0) fund = LONG;
 | 
			
		||||
		if (val >= 0) fund = LONG;
 | 
			
		||||
		else fund = ULONG;
 | 
			
		||||
	} else {	/* sizeof(arith) is greater than long_size */
 | 
			
		||||
		ASSERT(arith_size > long_size);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -582,8 +582,14 @@ ch_array(tpp, ex)
 | 
			
		|||
	else {
 | 
			
		||||
		arith dim = tp->tp_size / tp->tp_up->tp_size;
 | 
			
		||||
 | 
			
		||||
		if (length > dim) {
 | 
			
		||||
			expr_warning(ex, "too many initialisers");
 | 
			
		||||
#ifdef LINT
 | 
			
		||||
		if (length == dim + 1) {
 | 
			
		||||
			    expr_warning(ex, "array is not null-terminated");
 | 
			
		||||
		} else
 | 
			
		||||
#else
 | 
			
		||||
		if (length > dim + 1) {
 | 
			
		||||
#endif
 | 
			
		||||
			expr_strict(ex, "too many initialisers");
 | 
			
		||||
		}
 | 
			
		||||
		length = dim;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue