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
gz_reset(gz_state * state)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
gzbuffer(void * file,int size)30 gzbuffer (void *file, int size)
31 {
32   gz_state *state;
33   gz_reset (state);
34 }
35 
gz_error(gz_state * state,int err,char * msg)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 }
47