From 890754ee27d564335865a0ba731e69c6a6191655 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 23 May 2013 19:43:41 +0200 Subject: [PATCH] FFI: Insert no-op type conversion for pointer to integer cast. --- src/lj_crecord.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 2d630c85..e3973fc1 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c @@ -453,6 +453,10 @@ static TRef crec_ct_ct(jit_State *J, CType *d, CType *s, TRef dp, TRef sp, sinfo = CTINFO(CT_NUM, CTF_UNSIGNED); ssize = CTSIZE_PTR; st = IRT_UINTP; + if (((dsize ^ ssize) & 8) == 0) { /* Must insert no-op type conversion. */ + sp = emitconv(sp, dsize < 4 ? IRT_INT : dt, IRT_PTR, 0); + goto xstore; + } goto conv_I_I; /* Destination is a floating-point number. */