On Tue, Dec 03, 2013 at 01:03:43PM -0700, Jeff Law wrote: > On 12/02/13 13:10, Marek Polacek wrote: > >We triggered an assert on attached testcase, because when building the > >compound literal with empty initial value complete_array_type returns > >3, but we assert it returns 0. It returns 3 only in the pedantic mode, > >where empty initializer braces are forbidden. Since we already gave > >a warning, I think we could loosen the assert a bit and allow > >empty initial values at that point. sizeof on such compound literal > >then yields zero, which I think is correct. > >The assert exists even in GCC 4.0. > > > >Regtested/botstrapped on x86_64-linux, ok for trunk and 4.8 and > >perhaps even 4.7? > > > >2013-12-02 Marek Polacek <pola...@redhat.com> > > > > PR c/59351 > >c/ > > * c-decl.c (build_compound_literal): Allow compound literals with > > empty initial value. > >testsuite/ > > * gcc.dg/pr59351.c: New test. > I was going to ask for some details about where we detect and warn > to review that code as well, but given your test verifies the > warning as well, we're good to go.
Yeah, the patch should really only fix the ICE. > OK for the trunk. Branch maintainers have final say for their branches. Note that I already put this into trunk and after ack by Jakub into 4.7/4.8 branches as well. Marek