This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Bug gas/m68k] parse error with m68k-aout targets
Gunther Nikl <gni@gecko.de> writes:
> It is a hard to detect bug. It was now detected with binutils-2.14
> sources because bfd/libbfd.c/warn_deprecated has a static variable
> "mask". Since the variable is static it is emitted without a prepended
> underscore with a.out systems. Thus by renaming the variable the
> problem goes away for this particular source.
Even a static variable should have a prepended underscore. Otherwise
it is impossible to say something like
static int d0;
Not using an underscore is clearly a bug. Are you using gcc? If so,
which version?
Given that mask is a register name, this instruction
orl (mask.0),d0
really is invalid. We could fix it so that that works, but still
orl (mask),d0
would not and could not work.
The compiler should not emit symbols which are in the register name
space. The same applies to hand coded assembler. Assembler code
should be unambiguous. I don't think it is appropriate to add code to
the assembler to clarify ambiguity by guessing what the user means.
Ian