Don't allow arrays and other unsupported parameter types to be used in parameter lists

This commit is contained in:
Wolfgang (Blub) Bumiller 2012-11-11 14:08:02 +01:00
parent df77e062dc
commit 86e42ad123

View file

@ -2239,8 +2239,16 @@ static ast_value *parse_parameter_list(parser_t *parser, ast_value *var)
param = parse_typename(parser, NULL);
if (!param)
goto on_error;
if (!paramlist_t_p_add(&params, param))
if (!paramlist_t_p_add(&params, param)) {
ast_delete(param);
goto on_error;
}
if (param->expression.vtype >= TYPE_VARIANT) {
char typename[1024];
ast_type_to_string((ast_expression*)param, typename, sizeof(typename));
parseerror(parser, "type not supported as part of a parameter list: %s", typename);
goto on_error;
}
}
}