widl: Check for redefinition of named user types.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2019-08-20 22:28:24 -05:00 committed by Alexandre Julliard
parent 2b6cf134c7
commit a58e4cc07c
1 changed files with 8 additions and 0 deletions

View File

@ -285,6 +285,8 @@ type_t *type_new_enum(const char *name, struct namespace *namespace, int defined
t->details.enumeration->enums = enums; t->details.enumeration->enums = enums;
t->defined = TRUE; t->defined = TRUE;
} }
else if (defined)
error_loc("redefinition of enum %s\n", name);
return t; return t;
} }
@ -311,6 +313,8 @@ type_t *type_new_struct(char *name, struct namespace *namespace, int defined, va
t->details.structure->fields = fields; t->details.structure->fields = fields;
t->defined = TRUE; t->defined = TRUE;
} }
else if (defined)
error_loc("redefinition of struct %s\n", name);
return t; return t;
} }
@ -336,6 +340,8 @@ type_t *type_new_nonencapsulated_union(const char *name, int defined, var_list_t
t->details.structure->fields = fields; t->details.structure->fields = fields;
t->defined = TRUE; t->defined = TRUE;
} }
else if (defined)
error_loc("redefinition of union %s\n", name);
return t; return t;
} }
@ -367,6 +373,8 @@ type_t *type_new_encapsulated_union(char *name, var_t *switch_field, var_t *unio
t->details.structure->fields = append_var(t->details.structure->fields, union_field); t->details.structure->fields = append_var(t->details.structure->fields, union_field);
t->defined = TRUE; t->defined = TRUE;
} }
else
error_loc("redefinition of union %s\n", name);
return t; return t;
} }