Mercurial > hg > index.cgi
diff lwasm/insn_gen.c @ 389:2d9b7ae6c329
Throw error if address overflows in extended mode
This may or may not cause extra problems due to sloppiness in dealing with
calculations that overflow in 16 bits. However, presumably it is a good idea
so unless something major pops up, it seems like a good idea.
Thanks to Erik G <erik@6809.org> for the patch.
author | William Astle <lost@l-w.ca> |
---|---|
date | Mon, 13 Jul 2015 21:37:49 -0600 |
parents | 17fcd0c3ee45 |
children | b20f14edda5a |
line wrap: on
line diff
--- a/lwasm/insn_gen.c Mon Jul 13 21:34:50 2015 -0600 +++ b/lwasm/insn_gen.c Mon Jul 13 21:37:49 2015 -0600 @@ -111,6 +111,8 @@ // if we have a constant now, figure out dp vs nondp if (lw_expr_istype(s, lw_expr_type_int)) { + if (s -> value > 0xffff) lwasm_register_error(as, l, E_BYTE_OVERFLOW); + v1 = lw_expr_intval(s); if (((v1 >> 8) & 0xff) == (l -> dpval & 0xff)) {