/* struct declarations. */
struct fval;
struct gval;
struct hval;

/* function declarations */
struct fval *f();
struct gval *g();
struct hval *h();

struct fval { struct gval* (*g)(); int dummy; };
struct gval { struct hval* (*h)(); };
struct hval { void (*i)(); };

extern void test();
void test()
{
    f()->g()->h()->i();
}