aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2020-12-28 12:37:36 +0100
committerMike Pall <mike>2020-12-28 12:37:36 +0100
commit56c04accf975bff2519c34721dccbbdb7b8e6963 (patch)
tree334ca6d3664bdc610c5c8950c2674d3840a97f4a /src
parentd67ff15a5cf11dff46fa2288e0c074526548db2b (diff)
downloadluajit-56c04accf975bff2519c34721dccbbdb7b8e6963.tar.gz
luajit-56c04accf975bff2519c34721dccbbdb7b8e6963.tar.bz2
luajit-56c04accf975bff2519c34721dccbbdb7b8e6963.zip
FFI: Fix recording of union initialization.
Thanks to Alex Shpilkin.
Diffstat (limited to 'src')
-rw-r--r--src/lj_crecord.c5
1 files changed, 5 insertions, 0 deletions
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)
959 dp = emitir(IRT(IR_ADD, IRT_PTR), trcd, 959 dp = emitir(IRT(IR_ADD, IRT_PTR), trcd,
960 lj_ir_kintp(J, df->size + sizeof(GCcdata))); 960 lj_ir_kintp(J, df->size + sizeof(GCcdata)));
961 crec_ct_tv(J, dc, dp, sp, sval); 961 crec_ct_tv(J, dc, dp, sp, sval);
962 if ((d->info & CTF_UNION)) {
963 if (d->size != dc->size) /* NYI: partial init of union. */
964 lj_trace_err(J, LJ_TRERR_NYICONV);
965 break;
966 }
962 } else if (!ctype_isconstval(df->info)) { 967 } else if (!ctype_isconstval(df->info)) {
963 /* NYI: init bitfields and sub-structures. */ 968 /* NYI: init bitfields and sub-structures. */
964 lj_trace_err(J, LJ_TRERR_NYICONV); 969 lj_trace_err(J, LJ_TRERR_NYICONV);