.asciz - implementation or documentation wrong?
Jan Beulich
JBeulich@novell.com
Wed Jul 6 09:30:00 GMT 2011
More information about the Binutils mailing list
Wed Jul 6 09:30:00 GMT 2011
- Previous message (by thread): .asciz - implementation or documentation wrong?
- Next message (by thread): .asciz - implementation or documentation wrong?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>>> On 06.07.11 at 10:21, Erik Christiansen <dvalin@internode.on.net> wrote: > On 05.07.11 12:38, Jan Beulich wrote: >> Documentation as well as the comment prior to stringer() say that the >> directive (like .ascii, but there it doesn't matter that much) expects >> comma separated double quoted strings. Yet a missing comma between >> two strings is taken as if there was one (whereas simply concatenating >> such strings - without any NUL character in between - would seem like >> the much better alternative). > > Jan, in comparison, I'm having trouble seeing any documentation vs > behaviour difference, on a quick check with: > > $ avr-as --version > GNU assembler (GNU Binutils) 2.20 > > Here, input of: > > .data > .asciz "AAAA", "BBBB" > .asciz "CCCC" "DDDD" This line ought to be rejected according to the documentation. > .ascii "EEEE", "FFFF" > .ascii "GGGG" "HHHH" As should this one. > gives: > > 8 .data > 9 0000 4141 4141 .asciz "AAAA", "BBBB" > 9 0042 4242 > 9 4200 > 10 000a 4343 4343 .asciz "CCCC" "DDDD" > 10 0044 4444 > 10 4400 That's precisely what I'm seeing. > 11 0014 4545 4545 .ascii "EEEE", "FFFF" > 11 4646 4646 > 12 001c 4747 4747 .ascii "GGGG" "HHHH" > 12 4848 4848 > > AFAICS, ascii and asciz are both indifferent to the comma, and > everything is concatenated as expected, with NULs where required. > > If an inconsistency exists in newer binutils, and documentation does not > mandate it, then that is a regression, I submit. > > If the post is a proposal to implement, and document, "Only one NUL, if > no commas", then the breaking of a few existing assembler programs may > be the price. I realize that, which is why I didn't send a patch right away. > The introduction of Awk-like string concatenation syntax > seems cute, but doesn't achieve anything that can't be done by eliding > the two quotes and space to begin with. Eliding the quotes may not be possible - just consider the case of passing a .S file through a C pre-processor, and the intended string consisting of multiple pieces, some or all of which are pre-processor constants. Jan > At least then, the program is > more honestly explicit: z means each string is zero terminated. > > i.e.: > "`.asciz' is just like `.ascii', but each string is followed by a zero > byte." > > So is there any gain to offset the pain of changing that? > > Erik > > -- > In a time of drastic change it is the learners who survive; the > 'learned' find themselves fully equipped to live in a world that no > longer exists. - Eric Hoffer
- Previous message (by thread): .asciz - implementation or documentation wrong?
- Next message (by thread): .asciz - implementation or documentation wrong?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list