widl: Allow using fixed size arrays as strings.

This commit is contained in:
Alexandre Julliard 2011-05-25 19:34:26 +02:00
parent 7f426a51d1
commit 56e65b4534
1 changed files with 8 additions and 5 deletions

View File

@ -2560,11 +2560,14 @@ static void check_remoting_args(const var_t *func)
error_loc_info(&arg->loc_info, "out interface pointer \'%s\' of function \'%s\' is not a double pointer\n", arg->name, funcname);
break;
case TGT_STRING:
if (is_ptr(type) ||
(is_array(type) &&
(!type_array_has_conformance(type) ||
type_array_get_conformance(type)->type == EXPR_VOID)))
error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' cannot be an unsized string\n", arg->name, funcname);
if (is_array(type))
{
/* needs conformance or fixed dimension */
if (type_array_has_conformance(type) &&
type_array_get_conformance(type)->type != EXPR_VOID) break;
if (!type_array_has_conformance(type) && type_array_get_dim(type)) break;
}
error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' cannot be an unsized string\n", arg->name, funcname);
break;
case TGT_INVALID:
/* already error'd before we get here */