1  /* { dg-do compile } */
       2  
       3  struct T;
       4  typedef void F(void);
       5  
       6  F* aux(void (*x)())
       7  {
       8    return x;
       9  }
      10  
      11  void make_mess (int);
      12  
      13  F*
      14  get_funloc (void (*x)(int), F* (*y)())
      15  {
      16    return y(x);
      17  }
      18  
      19  F*
      20  foo ()
      21  {
      22    return get_funloc (make_mess, aux);
      23  }