From 521a452f2831f21bff7c46a894a1b269a7aec1b0 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 16 Nov 2005 09:55:27 -0200 Subject: [PATCH] 'mod' may also raise an error when applied to zero --- lcode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lcode.c b/lcode.c index 16c698a7..3ca3a459 100644 --- a/lcode.c +++ b/lcode.c @@ -1,5 +1,5 @@ /* -** $Id: lcode.c,v 2.20 2005/10/24 17:37:52 roberto Exp roberto $ +** $Id: lcode.c,v 2.21 2005/11/08 19:44:31 roberto Exp roberto $ ** Code generator for Lua ** See Copyright Notice in lua.h */ @@ -639,7 +639,9 @@ static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { case OP_DIV: if (v2 == 0) return 0; /* do not attempt to divide by 0 */ r = luai_numdiv(v1, v2); break; - case OP_MOD: r = luai_nummod(v1, v2); break; + case OP_MOD: + if (v2 == 0) return 0; /* do not attempt to divide by 0 */ + r = luai_nummod(v1, v2); break; case OP_POW: r = luai_numpow(v1, v2); break; case OP_UNM: r = luai_numunm(v1); break; case OP_LEN: return 0; /* no constant folding for 'len' */