Building an older binutils version with clang 10 produced an unexpected
warning message: "overlapping comparisons always evaluate to true". And
indeed, a register range check erroneously used a "logical or" instead
of an "and". This bug is still present in master.
Checking the history of tc-m68k.c shows that this particular bug is really
an ancient one. It was introduced with the creation of the bison grammar
for operand parsing in 1995!
On Tue, 31 Mar, 2020 18:01:52 +1030, Alan Modra wrote:
> On Fri, Mar 27, 2020 at 08:25:26PM +0100, Gunther Nikl wrote:
> > * config/tc-m68k.c (m68k_ip): Fix range check for index
> > register with a suppressed address register.
-/* If you define this macro, it should return the offset between the
- address of a PC relative fixup and the position from which the PC
- relative adjustment should be made. On many processors, the base
- of a PC relative instruction is the next instruction, so this
- macro would return the length of an instruction. */
-#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from (FIX)
-extern long md_pcrel_from (struct fix *);
#define md_section_align(SEGMENT, SIZE) (SIZE)