From 56c04accf975bff2519c34721dccbbdb7b8e6963 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 28 Dec 2020 12:37:36 +0100 Subject: [PATCH] FFI: Fix recording of union initialization. Thanks to Alex Shpilkin. --- src/lj_crecord.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 6e3c36a1..0287b95b 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c @@ -959,6 +959,11 @@ static void crec_alloc(jit_State *J, RecordFFData *rd, CTypeID id) dp = emitir(IRT(IR_ADD, IRT_PTR), trcd, lj_ir_kintp(J, df->size + sizeof(GCcdata))); crec_ct_tv(J, dc, dp, sp, sval); + if ((d->info & CTF_UNION)) { + if (d->size != dc->size) /* NYI: partial init of union. */ + lj_trace_err(J, LJ_TRERR_NYICONV); + break; + } } else if (!ctype_isconstval(df->info)) { /* NYI: init bitfields and sub-structures. */ lj_trace_err(J, LJ_TRERR_NYICONV);