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))
 		{