https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94885
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- process_init_constructor_record: 1743 if (DECL_SIZE (field) && integer_zerop (DECL_SIZE (field)) 1744 && !TREE_SIDE_EFFECTS (next)) 1745 /* Don't add trivial initialization of an empty base/field to the 1746 constructor, as they might not be ordered the way the back-end 1747 expects. */ 1748 continue; but here the initializer was erroneous so skipping it made us accept invalid code. Patch incoming.