From a720db409d547f1b509bb0584ee1570017ebccb8 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Wed, 23 Feb 2011 00:28:49 +0100 Subject: [PATCH] FFI: Record calls to functions with void results. --- src/lj_crecord.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 0120b3eb..5e058a6f 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c @@ -707,8 +707,14 @@ static int crec_call(jit_State *J, RecordFFData *rd, GCcdata *cd) CType *ctr = ctype_rawchild(cts, ct); IRType t = crec_ct2irt(ctr); TRef tr; - if (ctype_isenum(ctr->info)) ctr = ctype_child(cts, ctr); - if (!(ctype_isnum(ctr->info) || ctype_isptr(ctr->info)) || + if (ctype_isvoid(ctr->info)) { + t = IRT_NIL; + rd->nres = 0; + } else if (ctype_isenum(ctr->info)) { + ctr = ctype_child(cts, ctr); + } + if (!(ctype_isnum(ctr->info) || ctype_isptr(ctr->info) || + ctype_isvoid(ctr->info)) || ctype_isbool(ctr->info) || (ct->info & CTF_VARARG) || #if LJ_TARGET_X86 ctype_cconv(ct->info) != CTCC_CDECL ||