From 32c1d4751a302dc7838659477fe8605e3c14eabb Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Fri, 26 Aug 2011 20:29:05 +0200 Subject: [PATCH] Avoid conversion narrowing of arithmetic with large constants. --- src/lj_opt_narrow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lj_opt_narrow.c b/src/lj_opt_narrow.c index 37fda0b6..d9d1e2ba 100644 --- a/src/lj_opt_narrow.c +++ b/src/lj_opt_narrow.c @@ -284,7 +284,8 @@ static int narrow_conv_backprop(NarrowConv *nc, IRRef ref, int depth) } } else { int32_t k = lj_num2int(n); - if (n == (lua_Number)k) { /* Only if constant is really an integer. */ + /* Only if constant is a small integer. */ + if (checki16(k) && n == (lua_Number)k) { *nc->sp++ = NARROWINS(NARROW_INT, 0); *nc->sp++ = (NarrowIns)k; return 0;