This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]