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

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
The problem is we no longer fold the CONST_DECL in
  { .type = ZERO }
to
  { .type = 0 }
and then process_init_constructor_array does:

            if (next != error_mark_node
                && (initializer_constant_valid_p (next, TREE_TYPE (next))
                    != null_pointer_node))
              {
                /* Use VEC_INIT_EXPR for non-constant initialization of
                   trailing elements with no explicit initializers.  */
                picflags |= PICFLAG_VEC_INIT;

because the ctor isn't initializer_constant_valid_p.  Then we create a
VEC_INIT_EXPR and say we can't convert the argument.

Reply via email to