Name mangling problem in m68k port
Jeffrey A Law
law@hurl.cygnus.com
Tue Feb 2 10:03:00 GMT 1999
In message <vyzvhhmcrkz.fsf@issan.cs.uni-dortmund.de>you write:
> The static data members in this C++ class
>
> struct A { static in b; }
>
> is mangled as _1A.b when NO_DOLLAR_IN_LABEL is defined (which is by
> default in config/svr4.h). This is a problem for m68k targets, because if
> _1A.b is used as an operand the assembler interprets ".b" as a size suffix
> (similar for ".w", ".l", ".s"). The workaround is to put the name in
> parentheses, since these suffixes are only recognized at the end of the
> whole operand, not inside of it.
The assembler interprets the ".b" as a size directive for the operand? Weird.
Seems to me a better solution might be to define NO_DOT_IN_LABEL to avoid
the situation entirely. Is there some reason not to do this?
jeff
More information about the Gcc-patches
mailing list