X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Fdecl_type.h;h=4e56a23f9baec03a35b4d69eb01673722251d087;hp=f5aa4dc343f04dfdb474a1c432bb039da28baa07;hb=848d77002c2c0451ccb76b9059cb352fabbdd8bc;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84 diff --git a/src/types/decl_type.h b/src/types/decl_type.h index f5aa4dc..4e56a23 100644 --- a/src/types/decl_type.h +++ b/src/types/decl_type.h @@ -36,6 +36,7 @@ struct psi_decl_struct; struct psi_decl_union; struct psi_decl_enum; struct psi_decl; +struct psi_validate_stack; struct psi_decl_type { struct psi_token *token; @@ -54,9 +55,10 @@ struct psi_decl_type { #define psi_decl_type_is_anon(name, type) !strncmp(name, type "@", sizeof(type)) struct psi_decl_type *psi_decl_type_init(token_t type, const char *name); +struct psi_decl_type *psi_decl_type_copy(struct psi_decl_type *src); void psi_decl_type_free(struct psi_decl_type **type_ptr); void psi_decl_type_dump(int fd, struct psi_decl_type *t, unsigned level); -bool psi_decl_type_validate(struct psi_data *data, struct psi_decl_type *type, struct psi_decl_arg *def); +bool psi_decl_type_validate(struct psi_data *data, struct psi_decl_type *type, bool is_pointer, struct psi_validate_stack *type_stack); bool psi_decl_type_validate_args(struct psi_data *data, struct psi_decl_type *decl_type, token_t type, void *current);