https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77646
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Or with creduce's rename-toks: struct e { int (*f)(); void (*g)(); } * c; int a; void *h(); typedef struct { struct e j; } k; int l() { return a; } const struct e b = {l}; void m() { k *d = h(); d->j = b; c = (struct e *)d; struct e *i = c; if (i->f(c)) while (i->f(c)) i->g(); }