/* { dg-do compile } */ 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(); }