https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63645
--- Comment #23 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Mon, 27 Oct 2014, jakub at gcc dot gnu.org wrote: > Let's consider if in #c11 you change: > GnmExprBinary *res = malloc (sizeof (GnmExprBinary)); > res->oper = op; > return (GnmExpr*)res; > to: > GnmExpr *res = malloc (sizeof (GnmExprBinary)); > res->binary.oper = op; > return res; > is that also invalid? I think that pretty much models what GCC does in its That's one of the poorly defined cases where it's not clear which object is relevant.