From 9201488618d7f9a51689d7369132223b286004c2 Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 4 Jun 2023 10:50:54 +0200 Subject: support calling undeclared functions --- type.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'type.c') diff --git a/type.c b/type.c index 798994d..c698817 100644 --- a/type.c +++ b/type.c @@ -8,6 +8,7 @@ static ushort hashtd(const struct typedata *td) { uint h = td->t*33; + bool t; switch (td->t) { case TYARRAY: h = hashb(h, &td->arrlen, sizeof td->arrlen); @@ -23,6 +24,8 @@ hashtd(const struct typedata *td) case TYFUNC: h = hashb(h, &td->ret, sizeof td->ret); h = hashb(h, &td->nmemb, sizeof td->nmemb); + h = hashb(h, (t = td->kandr, &t), sizeof t); + h = hashb(h, (t = td->variadic, &t), sizeof t); for (int i = 0; i < td->nmemb; ++i) { uchar q = tdgetqual(td->quals, i); h = hashb(h, &td->param[i], sizeof *td->param); @@ -52,6 +55,7 @@ tdequ(const struct typedata *a, const struct typedata *b) if (a->ret.bits != b->ret.bits) return 0; if (a->nmemb != b->nmemb) return 0; if (a->variadic != b->variadic) return 0; + if (a->kandr != b->kandr) return 0; for (int i = 0; i < a->nmemb; ++i) { if (!a->quals != !b->quals || a->param[i].bits != b->param[i].bits) return 0; -- cgit v1.2.3