aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr55238.c
blob: 0ace05809c9e9bde23d7279f3bffb7cb08ecdbe4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* { dg-do compile } */

typedef void * gzFile;
typedef struct
{
  int mode;
  int direct;
  int seek;
  int err;
  char *msg;
}
gz_state;

void gz_error (gz_state *state, int err, char *msg);

static void
gz_reset (gz_state *state)
{
  if (state->mode == 7247)
    {
      state->direct = 1;
    }
  state->seek = 0;
  gz_error (state, 0, 0);
}

int
gzbuffer (void *file, int size)
{
  gz_state *state;
  gz_reset (state);
}

void gz_error (gz_state *state, int err, char *msg)
{
  if (state->msg != 0)
    {
      if (state->err != -4)
	foo (state->msg);
    }
  if (msg == 0)
    return;
  bar (state->msg, msg);
}