https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109828
--- Comment #2 from Yann Droneaud <yann at droneaud dot fr> --- (In reply to Yann Droneaud from comment #0) > The following code is badly compiled by GCC 13.1: > > struct s { int i; char c[]; }; > > const struct s s = { .c = "0", }; > const struct s *r = &(constexpr struct s) { .c = "1", }; > const struct s *t = &(static struct s) { .c = "2", }; > > Targetting x86-64 / amd64, compiling this with gcc -std=gnu2x -S, produces > surprising large .zero directive: > > s: > .zero 4 > .string "0" > __compound_literal.0: > .zero 4 > .string "1" > .zero 18446744073709551613 > .zero 1 > r: > .quad __compound_literal.0 > __compound_literal.1: > .zero 4 > .string "2" > .zero 18446744073709551613 > .zero 1 > t: > .quad __compound_literal.1 > > When asked to assemble that, binutils' as complains: $ gcc -std=gnu2x nice.c -c /tmp/ccZEWv73.s: Assembler messages: /tmp/ccZEWv73.s:17: Warning: .space repeat count is zero, ignored /tmp/ccZEWv73.s:32: Warning: .space repeat count is zero, ignored