BugFix: enum items idents fixed
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 26 Mar 2004 09:06:32 +0000 (09:06 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 26 Mar 2004 09:06:32 +0000 (09:06 +0000)
[r2565]

ir/tr/type.c

index 8fd6bfb..3298454 100644 (file)
@@ -1318,12 +1318,10 @@ INLINE type   *new_type_enumeration    (ident *name, int n_enums) {
   int i;
   res = new_type(type_enumeration, NULL, name);
   res->attr.ea.n_enums     = n_enums;
-  res->attr.ea.enumer      = (tarval **) xmalloc (sizeof (tarval *) * n_enums);
-  res->attr.ea.enum_nameid = (ident  **) xmalloc (sizeof (ident  *) * n_enums);
-  for (i = 0; i < n_enums; i++) {
-    res->attr.ea.enumer[i] = NULL;
-    res->attr.ea.enum_nameid  = NULL;
-  }
+  res->attr.ea.enumer      = (tarval **)xmalloc(sizeof(res->attr.ea.enumer[0]) * n_enums);
+  res->attr.ea.enum_nameid = (ident  **)xmalloc(sizeof(res->attr.ea.enum_nameid[0]) * n_enums);
+  memset(res->attr.ea.enumer,      0, sizeof(res->attr.ea.enumer[0])      * n_enums);
+  memset(res->attr.ea.enum_nameid, 0, sizeof(res->attr.ea.enum_nameid[0]) * n_enums);
   return res;
 }
 type   *new_d_type_enumeration    (ident *name, int n_enums, dbg_info* db) {