Browse code

(uxnasm) Add error for relative references that are too far.

Andrew Alderwick authored on 01/12/2021 11:42:44
Showing 1 changed files
... ...
@@ -351,6 +351,8 @@ resolve(void)
351 351
 			if(!(l = findlabel(r->name)))
352 352
 				return error("Unknown relative reference", r->name);
353 353
 			p.data[r->addr + 1] = (Sint8)(l->addr - r->addr - 3);
354
+			if((Sint8)p.data[r->addr + 1] != (l->addr - r->addr - 3))
355
+				return error("Relative reference is too far", r->name);
354 356
 			l->refs++;
355 357
 			break;
356 358
 		case ';':