Hello,
In a number of places, the gimplifier simply discards what involves
zero sized entities. For instance:
in "gimplify_init_ctor_eval"...
FOR_EACH_CONSTRUCTOR_ELT (elts, ix, purpose, value)
...
if (zero_sized_field_decl (purpose))
continue;
or in "gimplify_modify_expr"...
/* For zero sized types only gimplify the left hand side and
right hand side as statements and throw away the assignment. */
if (zero_sized_type (TREE_TYPE (*from_p)))
...
This is causing troubles when side effects are so discarded, for instance
a call to a function returning a zero sized type.