Mail Archives: djgpp/1996/10/09/00:56:42
Francisco Gochez wrote:
>
> It took me an hour to find a syntax error in an assembly language module
> I had written, because the error was being caused by whitespace in the
> code. It occured after placing spaces (not on purpose) after backslashes
> at the end of lines of macros.
> Here is an example:
>
> #define mymacro() \
> movl %eax, %ebx ; \_SPACES_PLACED_HERE_
> movl %ecx, %edx ; \
> movl %edx, %eax
>
> When GAS encounters these spaces, it appears to choke on pieces of the
> code, warning the programmer that parts of certain lines have been
> ignored, and failing to compile in the process.
Actually, the problem is in cpp (rather than gas, which knows nothing about #defines) and it's
not really a bug. The '\' must ALWAYS be at the END of the line. ie no trailing white space etc.
Bill
- Raw text -