http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48132

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-15 
13:19:09 UTC ---
Regressed (expectedly) with
http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166167
The problem seems to be that the middle-end relies on indexes being filled in
in ctors for arrays, but the C++ FE in this case doesn't fill them in.
For POD arrays the indexes are added by process_init_constructor_array, but
that
isn't called in this case (both because check_initializer will do:
              /* Don't call digest_init; it's unnecessary and will complain
                 about aggregate initialization of non-aggregate classes.  */
              flags |= LOOKUP_ALREADY_DIGESTED;
and also because it is called only for:
  if (BRACE_ENCLOSED_INITIALIZER_P (init)
      && !TYPE_NON_AGGREGATE_CLASS (type))
    return process_init_constructor (type, init);

Reply via email to