]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
DUALNUM: Fix narrowing of unary minus.
authorMike Pall <mike>
Sat, 6 Dec 2025 07:39:11 +0000 (08:39 +0100)
committerMike Pall <mike>
Sat, 6 Dec 2025 07:39:11 +0000 (08:39 +0100)
Reported by Sergey Kaplun. #1418

src/lj_opt_narrow.c

index 3085c83766652b48fb5506a3310f304c52a7e642..a4a1c8eea55f4119edfd22376eb67adaeb1c0a8d 100644 (file)
@@ -545,9 +545,9 @@ TRef lj_opt_narrow_unm(jit_State *J, TRef rc, TValue *vc)
   rc = conv_str_tonum(J, rc, vc);
   if (tref_isinteger(rc)) {
     uint32_t k = (uint32_t)numberVint(vc);
-    if ((LJ_DUALNUM || k != 0) && k != 0x80000000u) {
+    if ((tvisint(vc) || k != 0) && k != 0x80000000u) {
       TRef zero = lj_ir_kint(J, 0);
-      if (!LJ_DUALNUM)
+      if (!tvisint(vc))
        emitir(IRTGI(IR_NE), rc, zero);
       return emitir(IRTGI(IR_SUBOV), zero, rc);
     }