X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Fdecl_type.c;h=590c8eea126896150c512456c6cb88272118d9a1;hb=370510d04a5e22140e1e7f90f5d1f0002e6dbee6;hp=4f494d69394a372067b9d108c0b51b90ff9b3c99;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84;p=m6w6%2Fext-psi diff --git a/src/types/decl_type.c b/src/types/decl_type.c index 4f494d6..590c8ee 100644 --- a/src/types/decl_type.c +++ b/src/types/decl_type.c @@ -25,9 +25,11 @@ #include "php_psi_stdinc.h" #include "token.h" -#include "php_psi_stdtypes.h" #include "data.h" +#define PSI_STD_TYPES +#include "php_psi_posix.h" + struct psi_decl_type *psi_decl_type_init(token_t type, const char *name) { struct psi_decl_type *t = calloc(1, sizeof(*t)); @@ -53,6 +55,20 @@ void psi_decl_type_free(struct psi_decl_type **type_ptr) } } +struct psi_decl_type *psi_decl_type_copy(struct psi_decl_type *src) +{ + struct psi_decl_type *dst = calloc(1, sizeof(*dst)); + + dst->type = src->type; + if (src->name) { + dst->name = strdup(src->name); + } + if (src->token) { + dst->token = psi_token_copy(src->token); + } + return dst; +} + struct psi_plist *psi_decl_type_get_args(struct psi_decl_type *dtyp, struct psi_decl_type **real_typ_ptr) { @@ -322,6 +338,8 @@ int psi_decl_type_is_weak(struct psi_decl_type *type) case PSI_T_SHORT: case PSI_T_INT: case PSI_T_LONG: + case PSI_T_UNSIGNED: + case PSI_T_SIGNED: case PSI_T_NAME: return type->type; default: