re-added negative-array-size testcase and fixed fix for it
This commit is contained in:
		
							parent
							
								
									d7d8458888
								
							
						
					
					
						commit
						9b52e16a50
					
				
					 2 changed files with 5 additions and 3 deletions
				
			
		
							
								
								
									
										6
									
								
								tccgen.c
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								tccgen.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -3166,13 +3166,13 @@ static void post_type(CType *type, AttributeDef *ad)
 | 
			
		|||
        n = -1;
 | 
			
		||||
        t1 = 0;
 | 
			
		||||
        if (tok != ']') {
 | 
			
		||||
            gexpr();
 | 
			
		||||
            if (!local_stack || nocode_wanted)
 | 
			
		||||
                 vpushi(expr_const());
 | 
			
		||||
            else gexpr();
 | 
			
		||||
            if ((vtop->r & (VT_VALMASK | VT_LVAL | VT_SYM)) == VT_CONST) {
 | 
			
		||||
                n = vtop->c.i;
 | 
			
		||||
                if (n < 0)
 | 
			
		||||
                    error("invalid array size");
 | 
			
		||||
            } else if (!local_stack) {
 | 
			
		||||
                error("expected constant expression (variably modified array at file scope)");
 | 
			
		||||
            } else {
 | 
			
		||||
                if (!is_integer_btype(vtop->type.t & VT_BTYPE))
 | 
			
		||||
                    error("size of variable length array should be an integer");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2083,6 +2083,8 @@ void *bounds_checking_is_enabled()
 | 
			
		|||
    return (ca != cp + 1) ? cp : NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef int constant_negative_array_size_as_compile_time_assertion_idiom[(1 ? 2 : 0) - 1];
 | 
			
		||||
 | 
			
		||||
void c99_vla_test(int size1, int size2)
 | 
			
		||||
{
 | 
			
		||||
#if defined __i386__ || defined __x86_64__
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue