From b151a697e09b2088db3d1f86f355f32fb60f9691 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 2 Jan 2021 13:22:55 +0900 Subject: Fixed wrong casting in `OP_LOADI32`. Negative integer `>-65535` had wrong value, e,g, `p(-40550)` printed `4294926746` since Nov. 2020, sigh. --- src/vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/vm.c') diff --git a/src/vm.c b/src/vm.c index 76bd541c3..7a93eeac3 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1134,7 +1134,7 @@ RETRY_TRY_BLOCK: } CASE(OP_LOADI32, BSS) { - SET_INT_VALUE(mrb, regs[a], (mrb_int)(((uint32_t)b<<16)+c)); + SET_INT_VALUE(mrb, regs[a], (int32_t)(((uint32_t)b<<16)+c)); NEXT; } -- cgit v1.2.3