X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Fdecl_type.c;h=c64b24d00b56313b53c4be1586784158b594026a;hp=afab9e307cae40995b9bd14abb91e6336d0f6a1b;hb=cffcbdd1df9f6d5dcf78f49a3d1b44cefe21b2f5;hpb=848d77002c2c0451ccb76b9059cb352fabbdd8bc diff --git a/src/types/decl_type.c b/src/types/decl_type.c index afab9e3..c64b24d 100644 --- a/src/types/decl_type.c +++ b/src/types/decl_type.c @@ -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;