From a3744014c5c9c232811cfe6256db6d1052a9f02b Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 20 Aug 2019 16:10:53 -0400 Subject: [PATCH 085/124] FIXME: add zlib-6.c --- gcc/testsuite/gcc.dg/analyzer/zlib-6.c | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/analyzer/zlib-6.c diff --git a/gcc/testsuite/gcc.dg/analyzer/zlib-6.c b/gcc/testsuite/gcc.dg/analyzer/zlib-6.c new file mode 100644 index 0000000..9a01326 --- /dev/null +++ b/gcc/testsuite/gcc.dg/analyzer/zlib-6.c @@ -0,0 +1,47 @@ +typedef unsigned char Byte; +typedef unsigned int uInt; +typedef unsigned long uLong; + +typedef struct z_stream_s { + Byte *next_in; + uInt avail_in; + uLong total_in; +} z_stream; + +typedef struct inflate_blocks_state { + uInt bitk; + uLong bitb; + Byte *write; +} inflate_blocks_statef; + +extern int inflate_flush(inflate_blocks_statef *, z_stream *, int); + +int inflate_blocks(inflate_blocks_statef *s, z_stream *z, int r) { + uInt t; + uLong b; + uInt k; + Byte *p; + uInt n; + Byte *q; + uInt m; + + while (k < (3)) { + { + if (n) + r = 0; + else { + { + s->bitb = b; + s->bitk = k; + z->avail_in = n; + z->total_in += p - z->next_in; + z->next_in = p; + s->write = q; + } + return inflate_flush(s, z, r); + } + }; + b |= ((uLong)(n--, *p++)) << k; + k += 8; + } +} -- 1.8.5.3