stage3/lvalue_check.cc
changeset 831 691e1cc38d3a
parent 828 a5f08df62002
child 833 27f246b35ac2
equal deleted inserted replaced
830:6f45ec6ed011 831:691e1cc38d3a
   290 		/* We only process the parameter value if the paramater itself is valid... */
   290 		/* We only process the parameter value if the paramater itself is valid... */
   291 		if (param_name != NULL) {
   291 		if (param_name != NULL) {
   292 			/* If the parameter is either OUT or IN_OUT, we check if 'call_param_value' is a valid lvalue */
   292 			/* If the parameter is either OUT or IN_OUT, we check if 'call_param_value' is a valid lvalue */
   293 			if ((function_param_iterator_c::direction_out == param_direction) || (function_param_iterator_c::direction_inout == param_direction)) 
   293 			if ((function_param_iterator_c::direction_out == param_direction) || (function_param_iterator_c::direction_inout == param_direction)) 
   294 				verify_is_lvalue(call_param_value);
   294 				verify_is_lvalue(call_param_value);
   295 			/* parameter values to IN parameters may be expressions with function invocations that must also be checked! */
   295 			/* parameter values to IN  parameters may be expressions with function invocations that must also be checked! */
   296 			if (function_param_iterator_c::direction_in == param_direction) 
   296 			/* parameter values to OUT or IN_OUT parameters may contain arrays, whose subscripts contain expressions that must be checked! */
   297 				call_param_value->accept(*this);  
   297 			call_param_value->accept(*this);  
   298 		}
   298 		}
   299 	}
   299 	}
   300 }
   300 }
   301 
   301 
   302 
   302 
   330 		/* We only process the parameter value if the paramater itself is valid... */
   330 		/* We only process the parameter value if the paramater itself is valid... */
   331 		if (param_name != NULL) {
   331 		if (param_name != NULL) {
   332 			/* If the parameter is either OUT or IN_OUT, we check if 'call_param_value' is a valid lvalue */
   332 			/* If the parameter is either OUT or IN_OUT, we check if 'call_param_value' is a valid lvalue */
   333 			if ((function_param_iterator_c::direction_out == param_direction) || (function_param_iterator_c::direction_inout == param_direction)) 
   333 			if ((function_param_iterator_c::direction_out == param_direction) || (function_param_iterator_c::direction_inout == param_direction)) 
   334 				verify_is_lvalue(call_param_value);
   334 				verify_is_lvalue(call_param_value);
   335 			/* parameter values to IN parameters may be expressions with function invocations that must also be checked! */
   335 			/* parameter values to IN  parameters may be expressions with function invocations that must also be checked! */
   336 			if (function_param_iterator_c::direction_in == param_direction) 
   336 			/* parameter values to OUT or IN_OUT parameters may contain arrays, whose subscripts contain expressions that must be checked! */
   337 				call_param_value->accept(*this);  
   337 			call_param_value->accept(*this);  
   338 		
       
   339  		}
   338  		}
   340 	}
   339 	}
   341 }
   340 }
   342 
   341 
   343 
   342