typedef struct {} S; static int h(); struct A { void*(*clone)(); }; static S* const C = ( &(S) {} ); struct D { int (*h)(); }; T(struct A* a) { struct D* d = a->clone(( &(struct D) { .h = h, } )) ; } static int h() { if (e(C)){} }