diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_crecord.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c index d568b20a..4799031a 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c | |||
@@ -1249,7 +1249,7 @@ void LJ_FASTCALL recff_cdata_call(jit_State *J, RecordFFData *rd) | |||
1249 | 1249 | ||
1250 | static TRef crec_arith_int64(jit_State *J, TRef *sp, CType **s, MMS mm) | 1250 | static TRef crec_arith_int64(jit_State *J, TRef *sp, CType **s, MMS mm) |
1251 | { | 1251 | { |
1252 | if (ctype_isnum(s[0]->info) && ctype_isnum(s[1]->info)) { | 1252 | if (sp[0] && sp[1] && ctype_isnum(s[0]->info) && ctype_isnum(s[1]->info)) { |
1253 | IRType dt; | 1253 | IRType dt; |
1254 | CTypeID id; | 1254 | CTypeID id; |
1255 | TRef tr; | 1255 | TRef tr; |
@@ -1307,6 +1307,7 @@ static TRef crec_arith_ptr(jit_State *J, TRef *sp, CType **s, MMS mm) | |||
1307 | { | 1307 | { |
1308 | CTState *cts = ctype_ctsG(J2G(J)); | 1308 | CTState *cts = ctype_ctsG(J2G(J)); |
1309 | CType *ctp = s[0]; | 1309 | CType *ctp = s[0]; |
1310 | if (!(sp[0] && sp[1])) return 0; | ||
1310 | if (ctype_isptr(ctp->info) || ctype_isrefarray(ctp->info)) { | 1311 | if (ctype_isptr(ctp->info) || ctype_isrefarray(ctp->info)) { |
1311 | if ((mm == MM_sub || mm == MM_eq || mm == MM_lt || mm == MM_le) && | 1312 | if ((mm == MM_sub || mm == MM_eq || mm == MM_lt || mm == MM_le) && |
1312 | (ctype_isptr(s[1]->info) || ctype_isrefarray(s[1]->info))) { | 1313 | (ctype_isptr(s[1]->info) || ctype_isrefarray(s[1]->info))) { |