[PATCH 1/2] widl: Check for redefinition of named user types.

Zebediah Figura z.figura12 at gmail.com
Tue Aug 20 22:28:24 CDT 2019


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 tools/widl/typetree.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/widl/typetree.c b/tools/widl/typetree.c
index faa582034f..524d00571f 100644
--- a/tools/widl/typetree.c
+++ b/tools/widl/typetree.c
@@ -285,6 +285,8 @@ type_t *type_new_enum(const char *name, struct namespace *namespace, int defined
         t->details.enumeration->enums = enums;
         t->defined = TRUE;
     }
+    else if (defined)
+        error_loc("redefinition of enum %s\n", name);
 
     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->defined = TRUE;
     }
+    else if (defined)
+        error_loc("redefinition of struct %s\n", name);
 
     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->defined = TRUE;
     }
+    else if (defined)
+        error_loc("redefinition of union %s\n", name);
 
     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->defined = TRUE;
     }
+    else
+        error_loc("redefinition of union %s\n", name);
 
     return t;
 }
-- 
2.22.0




More information about the wine-devel mailing list