#  define sent_bits_add(s, bits)    s->bits_sent += (bits)
 #  define sent_bits_align(s)        s->bits_sent = (s->bits_sent + 7) & ~7L
 #else
-#  define cmpr_bits_add(s, len)     (void)(len)
+#  define cmpr_bits_add(s, len)     Z_UNUSED(len)
 #  define cmpr_bits_align(s)
-#  define sent_bits_add(s, bits)    (void)(bits)
+#  define sent_bits_add(s, bits)    Z_UNUSED(bits)
 #  define sent_bits_align(s)
 #endif
 
 
     state->sane = !subvert;
     return Z_OK;
 #else
-    (void)subvert;
+    Z_UNUSED(subvert);
     state->sane = 1;
     return Z_DATA_ERROR;
 #endif
 
         fprintf(stderr, "gzclose unexpected return when handle null\n");
         exit(1);
     }
-    (void)read;
+    Z_UNUSED(read);
 #endif
 }
 
 
         uint32_t crc4 = PREFIX(crc32_combine_op)(crc1, crc3, op);
         crc1 = PREFIX(crc32_z)(crc1, data + offset, buffSize);
         assert(crc1 == crc4);
-        (void)crc1;
-        (void)crc4;
+        Z_UNUSED(crc1);
+        Z_UNUSED(crc4);
     }
     crc1 = PREFIX(crc32_z)(crc1, data + offset, dataLen % buffSize);
 
     crc2 = PREFIX(crc32_z)(crc2, data, dataLen);
 
     assert(crc1 == crc2);
-    (void)crc1;
-    (void)crc2;
+    Z_UNUSED(crc1);
+    Z_UNUSED(crc2);
     combine1 = PREFIX(crc32_combine)(crc1, crc2, (z_off_t)dataLen);
     combine2 = PREFIX(crc32_combine)(crc1, crc1, (z_off_t)dataLen);
     assert(combine1 == combine2);
     adler2 = PREFIX(adler32_z)(adler2, data, dataLen);
 
     assert(adler1 == adler2);
-    (void)adler1;
-    (void)adler2;
+    Z_UNUSED(adler1);
+    Z_UNUSED(adler2);
     combine1 = PREFIX(adler32_combine)(adler1, adler2, (z_off_t)dataLen);
     combine2 = PREFIX(adler32_combine)(adler1, adler1, (z_off_t)dataLen);
     assert(combine1 == combine2);
-    (void)combine1;
-    (void)combine2;
+    Z_UNUSED(combine1);
+    Z_UNUSED(combine2);
 
     /* This function must return 0. */
     return 0;
 
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "zbuild.h"
+
 extern int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size);
 
 int main(int argc, char **argv) {
         free(buf);
         err = fclose(f);
         assert(err == 0);
-        (void)err;
+        Z_UNUSED(err);
         fprintf(stderr, "Done:    %s: (%d bytes)\n", argv[i], (int)n_read);
     }
 
 
     ret = PREFIX(inflateReset2)(&strm, -8);     assert(ret == Z_OK);
     ret = PREFIX(inflateEnd)(&strm);            assert(ret == Z_OK);
     mem_done(&strm, what);
-    (void)err;
+    Z_UNUSED(err);
 }
 
 /* cover all of the lines in inflate.c up to inflate() */
     ret = PREFIX(inflateInit)(&strm);           assert(ret == Z_OK);
     ret = PREFIX(inflateEnd)(&strm);            assert(ret == Z_OK);
     fputs("inflate built-in memory routines\n", stderr);
-    (void)ret;
+    Z_UNUSED(ret);
 }
 
 /* cover all inflate() header and trailer cases and code after inflate() */
 
 static int push(void *desc, unsigned char *buf, unsigned len) {
     buf += len;
-    (void)buf;
+    Z_UNUSED(buf);
     return desc != NULL;        /* force error if desc not null */
 }
 
                                                 assert(ret == Z_OK);
     ret = PREFIX(inflateBackEnd)(&strm);        assert(ret == Z_OK);
     fputs("inflateBack built-in memory routines\n", stderr);
-    (void)ret;
+    Z_UNUSED(ret);
 }
 
 /* do a raw inflate of data in hexadecimal with both inflate and inflateBack */
     ret = zng_inflate_table(DISTS, lens, 16, &next, &bits, work);
                                                 assert(ret == 1);
     fputs("inflate_table not enough errors\n", stderr);
-    (void)ret;
+    Z_UNUSED(ret);
 }
 
 /* cover remaining inffast.c decoding and window copying */
 
     s->bi_buf = bi_buf;
     Tracev((stderr, "\n+++ Emit End Block: Last: %u Pending: %u Total Out: %" PRIu64 "\n",
         last, s->pending, (uint64_t)s->strm->total_out));
-    (void)last;
+    Z_UNUSED(last);
 }
 
 /* ===========================================================================
 
 #define MIN(a, b) ((a) > (b) ? (b) : (a))
 /* Maximum of a and b. */
 #define MAX(a, b) ((a) < (b) ? (b) : (a))
+/* Ignore unused variable warning */
+#define Z_UNUSED(var) (void)(var)
 
 #endif
 
 }
 
 void Z_INTERNAL *zng_calloc(void *opaque, unsigned items, unsigned size) {
-    (void)opaque;
+    Z_UNUSED(opaque);
     return zng_alloc((size_t)items * (size_t)size);
 }
 
 void Z_INTERNAL zng_cfree(void *opaque, void *ptr) {
-    (void)opaque;
+    Z_UNUSED(opaque);
     zng_free(ptr);
 }