X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fcvt_data.c;h=692fa1076ac351b0af52e5816009a4d31d8538f4;hb=7a7487bee79c16312270eb30275b095c92324348;hp=60e6187ea96b66f3cbaa357133518a521ed1ca3e;hpb=3084511901606db82741bffafc8582ab9b7591cc;p=ia32rtools.git diff --git a/tools/cvt_data.c b/tools/cvt_data.c index 60e6187..692fa10 100644 --- a/tools/cvt_data.c +++ b/tools/cvt_data.c @@ -305,10 +305,17 @@ check_sym: } if (pp_cmp_func(pp, pp_sym)) { - pp_print(fp_sym, sizeof(fp_sym), pp_sym); - anote("var: %s\n", fp_var); - anote("sym: %s\n", fp_sym); - awarn("^ mismatch\n"); + if (pp_sym->argc_stack == 0 && pp_sym->is_fastcall + && pp->argc_stack == 0 + && (pp->is_fastcall || pp->argc_reg == 0) + && pp_sym->argc_reg > pp->argc_reg) + ; /* fascall compatible func doesn't use all args -> ok */ + else { + pp_print(fp_sym, sizeof(fp_sym), pp_sym); + anote("var: %s\n", fp_var); + anote("sym: %s\n", fp_sym); + awarn("^ mismatch\n"); + } } return pp; @@ -566,6 +573,11 @@ int main(int argc, char *argv[]) goto fin; } + if (IS(words[0], "public")) { + // skip, sym should appear in header anyway + continue; + } + w = 1; type = parse_dx_directive(words[0]); if (type == DXT_UNSPEC) {