- // Defined, absolute values from $FFFF8000..$00007FFF get optimized
- // to absolute short
- if (CHECK_OPTS(OPT_ABS_SHORT)
- && ((AnEXATTR & (TDB | DEFINED)) == DEFINED)
- && (((uint32_t)AnEXVAL + 0x8000) < 0x10000))
- {
- AMn = ABSW;
-
- if (sbra_flag)
- warn("absolute value from $FFFF8000..$00007FFF optimised to absolute short");
- }
+ // When PC relative is enforced, check for any symbols that aren't
+ // EQU'd, in this case it's an illegal mode
+ if (optim_pc)
+ if (AnEXATTR & REFERENCED)
+ if (AnEXATTR & DEFINED)
+ if (!(AnEXATTR & EQUATED))
+ return error("relocation not allowed");