/* PR tree-optimization/80612 */
/* { dg-do compile } */

struct obstack *a;
struct obstack {
  union {
    void *plain;
    void (*extra)();
  } chunkfun;
} fn1(void p4()) {
  a->chunkfun.plain = p4;
  a->chunkfun.extra(a);
}
void fn2(int) __attribute__((__alloc_size__(1)));
void fn3() { fn1(fn2); }
