https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65673
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, clang produces the following without any diagnostic: .type .compoundliteral,@object # @.compoundliteral .local .compoundliteral .comm .compoundliteral,1,8 .type foo,@object # @foo .data .globl foo .p2align 3, 0x0 foo: .long 25 # 0x19 .zero 4 .quad .compoundliteral .size foo, 16 and the C++ frontend accepts it producing foo: .long 25 .zero 4 .quad ._anon_0 .local ._anon_0 .comm ._anon_0,0,8