https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63579
--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> --- Hmm, it is more complicated than that. Done this way, I would need to teach several places in the middle-end about fields of size 0. Currently I get several ICEs, one in output_constructor_regular_field because DECL_SIZE_UNIT (local->field) is NULL and we pass it to tree_to_uhwi to compute fieldsize; another much more frequent one is smallest_mode_for_size(-1,MODE_INT) from expand_debug_expr. It seems that an "empty" member should appear as a base class not just for layout, but for the whole middle-end (+debug), which already knows how to handle that case. But it should still appear as a member to the front-end... I don't know how to achieve something like that.