X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Fcpp_macro_decl.c;h=6d3747e58dbaa4bed08fb0fc3ae4d7c4c0fd82e0;hp=42ed0f4208bbad931b8879dc6b575e370cc048e4;hb=c9384515a81cb64d345b299908b2852f51bb8e6e;hpb=42f44eb5bf4ecd36e26e051fada79d861d0f92d2 diff --git a/src/types/cpp_macro_decl.c b/src/types/cpp_macro_decl.c index 42ed0f4..6d3747e 100644 --- a/src/types/cpp_macro_decl.c +++ b/src/types/cpp_macro_decl.c @@ -78,12 +78,23 @@ void psi_cpp_macro_decl_dump(int fd, struct psi_cpp_macro_decl *macro) if (macro->exp) { dprintf(fd, " "); psi_num_exp_dump(fd, macro->exp); - } else if (macro->tokens) { + if (!macro->tokens) abort(); + } else + if (macro->tokens) { size_t i = 0; struct psi_token *tok; while (psi_plist_get(macro->tokens, i++, &tok)) { - dprintf(fd, " %s", tok->text); + switch (tok->type) { + case PSI_T_QUOTED_STRING: + dprintf(fd, " \"%s\"", tok->text); + break; + case PSI_T_QUOTED_CHAR: + dprintf(fd, " '%s'", tok->text); + break; + default: + dprintf(fd, " %s", tok->text); + } } } } @@ -120,6 +131,8 @@ bool psi_cpp_macro_decl_equal(struct psi_cpp_macro_decl *d1, struct psi_cpp_macr if (!cmp_token_list(d1->sig, d2->sig)) { return false; } + } else if (d2->sig) { + return false; } if (d1->tokens) { @@ -130,6 +143,8 @@ bool psi_cpp_macro_decl_equal(struct psi_cpp_macro_decl *d1, struct psi_cpp_macr if (!cmp_token_list(d1->tokens, d2->tokens)) { return false; } + } else if (d2->tokens) { + return false; } /* FIXME compare num_exps */