https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109828

--- Comment #4 from Yann Droneaud <yann at droneaud dot fr> ---
I'm still playing with this, for example https://godbolt.org/z/dfjr8veh5, and
I've noticed the size of the compound_initializer is incorrect too:

    struct s { char i; char c[]; };
    const struct s *const s = &(static const struct s) { .c = "1", };

Compile too:

        .quad   __compound_literal.4
        .type   __compound_literal.4, @object
        .size   __compound_literal.4, 1
    __compound_literal.4:
        .zero   1
        .string "1"
        .zero   18446744073709551613
        .zero   1

I would have have expected .size to be 3, not 1.

Maybe it's the result of computing the size as 3 + -3 + 1, but it's far
fetched.

Reply via email to