diff -r bd5998ee8876 -r ff4d26b7e51d stage3/print_datatypes_error.cc --- a/stage3/print_datatypes_error.cc Mon Feb 13 17:04:29 2012 +0000 +++ b/stage3/print_datatypes_error.cc Thu Feb 16 10:27:52 2012 +0000 @@ -139,10 +139,10 @@ param_value = fcp_iterator.get_current_value(); /* Find the corresponding parameter in function declaration */ if (NULL == fp_iterator.search(param_name)) { - STAGE3_ERROR(0, fcall, fcall, "Invalid parameter '%s' when invoking %s '%s'", ((identifier_c *)param_name)->value, POU_str, ((identifier_c *)fcall_data.function_name)->value); + STAGE3_ERROR(0, param_name, param_name, "Invalid parameter '%s' when invoking %s '%s'", ((identifier_c *)param_name)->value, POU_str, ((identifier_c *)fcall_data.function_name)->value); } else if (NULL == param_value->datatype) { function_invocation_error = true; - STAGE3_ERROR(0, fcall, fcall, "Data type incompatibility between parameter '%s' and value being passed, when invoking %s '%s'", ((identifier_c *)param_name)->value, POU_str, ((identifier_c *)fcall_data.function_name)->value); + STAGE3_ERROR(0, param_value, param_value, "Data type incompatibility between parameter '%s' and value being passed, when invoking %s '%s'", ((identifier_c *)param_name)->value, POU_str, ((identifier_c *)fcall_data.function_name)->value); } } } @@ -153,7 +153,7 @@ for (int i = 1; (param_value = fcp_iterator.next_nf()) != NULL; i++) { if (NULL == param_value->datatype) { function_invocation_error = true; - STAGE3_ERROR(0, fcall, fcall, "Data type incompatibility for value passed in position %d when invoking %s '%s'", i, POU_str, ((identifier_c *)fcall_data.function_name)->value); + STAGE3_ERROR(0, param_value, param_value, "Data type incompatibility for value passed in position %d when invoking %s '%s'", i, POU_str, ((identifier_c *)fcall_data.function_name)->value); } } }