From 89215e9e371b825f589cb9ebd220a5d97c8f2dc0 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 11 Oct 2017 13:14:01 -0700 Subject: Remove duplicate warnings for immediate overflow For immediates, we had one overflow test in the bytecode interpreter (in most cases via warn_overflow_opd()) and one in out(); this meant we got two warnings instead of one every time. Replace with only the one in out(). Signed-off-by: H. Peter Anvin --- asm/assemble.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/asm/assemble.c b/asm/assemble.c index 7869f8c1..5e7f6fa1 100644 --- a/asm/assemble.c +++ b/asm/assemble.c @@ -302,14 +302,6 @@ static void warn_overflow_const(int64_t data, int size) warn_overflow(size); } -static void warn_overflow_opd(const struct operand *o, int size) -{ - if (absolute_op(o)) { - if (overflow_general(o->offset, size)) - warn_overflow(size); - } -} - static void warn_overflow_out(int64_t data, int size, enum out_sign sign) { bool err; @@ -1580,21 +1572,14 @@ static void gencode(struct out_data *data, insn *ins) break; case4(020): - if (opx->offset < -256 || opx->offset > 255) - nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV, - "byte value exceeds bounds"); out_imm(data, opx, 1, OUT_WRAP); break; case4(024): - if (opx->offset < 0 || opx->offset > 255) - nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV, - "unsigned byte value exceeds bounds"); out_imm(data, opx, 1, OUT_UNSIGNED); break; case4(030): - warn_overflow_opd(opx, 2); out_imm(data, opx, 2, OUT_WRAP); break; @@ -1603,18 +1588,15 @@ static void gencode(struct out_data *data, insn *ins) size = (opx->type & BITS16) ? 2 : 4; else size = (bits == 16) ? 2 : 4; - warn_overflow_opd(opx, size); out_imm(data, opx, size, OUT_WRAP); break; case4(040): - warn_overflow_opd(opx, 4); out_imm(data, opx, 4, OUT_WRAP); break; case4(044): size = ins->addr_size >> 3; - warn_overflow_opd(opx, size); out_imm(data, opx, size, OUT_WRAP); break; -- cgit v1.2.1