1  /* { dg-do compile } */
       2  
       3  typedef void * gzFile;
       4  typedef struct
       5  {
       6    int mode;
       7    int direct;
       8    int seek;
       9    int err;
      10    char *msg;
      11  }
      12  gz_state;
      13  
      14  void gz_error (gz_state *state, int err, char *msg);
      15  void foo (char *);
      16  void bar (char *, char *);
      17  
      18  static void
      19  gz_reset (gz_state *state)
      20  {
      21    if (state->mode == 7247)
      22      {
      23        state->direct = 1;
      24      }
      25    state->seek = 0;
      26    gz_error (state, 0, 0);
      27  }
      28  
      29  int
      30  gzbuffer (void *file, int size)
      31  {
      32    gz_state *state;
      33    gz_reset (state);
      34  }
      35  
      36  void gz_error (gz_state *state, int err, char *msg)
      37  {
      38    if (state->msg != 0)
      39      {
      40        if (state->err != -4)
      41  	foo (state->msg);
      42      }
      43    if (msg == 0)
      44      return;
      45    bar (state->msg, msg);
      46  }