parser: consolidate tokens
[m6w6/ext-psi] / src / types / decl_type.c
index afab9e307cae40995b9bd14abb91e6336d0f6a1b..c64b24d00b56313b53c4be1586784158b594026a 100644 (file)
@@ -120,8 +120,7 @@ bool psi_decl_type_get_alias(struct psi_decl_type *type, struct psi_plist *defs)
        }
        if (defs) {
                while (psi_plist_get(defs, i++, &def)) {
-                       if (def->type->type != type->type
-                                       && !strcmp(def->var->name, type->name)) {
+                       if (!strcmp(def->var->name, type->name)) {
                                type->real.def = def;
                                return true;
                        }
@@ -300,11 +299,15 @@ void psi_decl_type_dump_args_with_layout(int fd, struct psi_plist *args,
                while (psi_plist_get(args, i++, &sarg)) {
                        dprintf(fd, "%s", psi_t_indent(level));
                        psi_decl_arg_dump(fd, sarg, level);
-                       if (sarg->layout->bfw) {
-                               dprintf(fd, ":%zu", sarg->layout->bfw->len);
+                       if (sarg->layout) {
+                               if (sarg->layout->bfw) {
+                                       dprintf(fd, ":%zu", sarg->layout->bfw->len);
+                               }
+                               dprintf(fd, "::(%zu, %zu);\n", sarg->layout->pos,
+                                               sarg->layout->len);
+                       } else {
+                               dprintf(fd, ";\n");
                        }
-                       dprintf(fd, "::(%zu, %zu);\n", sarg->layout->pos,
-                                       sarg->layout->len);
                }
                --level;
        }
@@ -355,7 +358,11 @@ void psi_decl_type_dump(int fd, struct psi_decl_type *t, unsigned level)
                        return;
                }
                break;
+
+       default:
+               break;
        }
+
        dprintf(fd, "%s", t->name);
 }
 
@@ -398,6 +405,7 @@ size_t psi_decl_type_get_align(struct psi_decl_type *t)
        case PSI_T_ENUM:
        default:
                align = psi_t_alignment(real->type);
+               break;
        }
 
        return align;