X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftypes%2Fdecl_enum_item.c;h=c403d97113626e134d8ed0f98e74b992e7ef5a17;hb=ad2c22df5e451fffecc7b7ebdc9c5a4bb36e543e;hp=e39f0b071837e03843b9a04c320ba69074b8c109;hpb=3b0b651ea1b555d8d023e45b43e5eb93b23d00a1;p=m6w6%2Fext-psi diff --git a/src/types/decl_enum_item.c b/src/types/decl_enum_item.c index e39f0b0..c403d97 100644 --- a/src/types/decl_enum_item.c +++ b/src/types/decl_enum_item.c @@ -47,7 +47,7 @@ void psi_decl_enum_item_free(struct psi_decl_enum_item **i_ptr) if (i->num) { if (i->num == &i->inc) { switch (i->inc.op) { - case 0: + case PSI_T_NUMBER: psi_number_free(&i->inc.data.n); break; case PSI_T_PLUS: @@ -86,12 +86,13 @@ bool psi_decl_enum_item_validate(struct psi_data *data, item->inc.data.b.lhs = psi_num_exp_init_unary(PSI_T_LPAREN, psi_num_exp_copy(item->prev->num)); item->inc.data.b.rhs = psi_num_exp_init_num( - psi_number_init(PSI_T_INT64, &one)); + psi_number_init(PSI_T_INT64, &one, 0)); item->num = &item->inc; } else { int64_t nil = 0; - item->inc.data.n = psi_number_init(PSI_T_INT64, &nil); + item->inc.op = PSI_T_NUMBER; + item->inc.data.n = psi_number_init(PSI_T_INT64, &nil, 0); item->num = &item->inc; } } @@ -100,7 +101,7 @@ bool psi_decl_enum_item_validate(struct psi_data *data, return false; } - item->val = psi_long_num_exp(item->num, NULL); + item->val = psi_long_num_exp(item->num, NULL, NULL); return true; }