Using .macro argument in .error message?

Jan Beulich jbeulich@suse.com
Wed Jun 10 09:27:13 GMT 2026


On 07.06.2026 21:16, Georg-Johann Lay via Binutils wrote:
> Test case err.sx:
> 
> .macro Test data
>      .if \data < 0
>          .error "value \data is negative"
>      .endif
> .endm
> 
>      Test -1
> 
> 
> $ avr-as err.sx -v
> GNU assembler version 2.45.50 (avr) using BFD version (GNU Binutils) 
> 2.45.50.20250718
> err.sx: Assembler messages:
> err.sx: Warning: unknown escape '\d' in string; ignored
> err.sx:3: Error: value -1 is negative
> err.sx:7:  Info: macro invoked from here
> 
> While the printed error message is as expected, there is a spurious
> warning about using \d in the string.
> 
> What am I missing?
> 
> As far as I understand, the .error message /must/ be "-quoted.

Indeed. But AVR is one of the few targets which enable this extra
warning. Why that is or whether it could be changed requires AVR
knowledge, which I don#t have. There's also a surprising set of
characters for which the warning would never appear. I don't know
the history of that set, but it feels pretty arbitrary.

Jan


More information about the Binutils mailing list