Avoid some random compiler warnings on various platforms.
diff --git a/deflate.c b/deflate.c
index cf4c056..9079741 100644
--- a/deflate.c
+++ b/deflate.c
@@ -447,11 +447,12 @@
     uInt  *dictLength;
 {
     deflate_state *s;
+    uInt len;
 
     if (deflateStateCheck(strm))
         return Z_STREAM_ERROR;
     s = strm->state;
-    uInt len = s->strstart + s->lookahead;
+    len = s->strstart + s->lookahead;
     if (len > s->w_size)
         len = s->w_size;
     if (dictionary != Z_NULL && len)
@@ -1758,12 +1759,12 @@
      * code following this won't be able to either.
      */
     if (flush != Z_NO_FLUSH && s->strm->avail_in == 0 &&
-        s->strstart == s->block_start)
+        (long)s->strstart == s->block_start)
         return flush == Z_FINISH ? finish_done : block_done;
 
     /* Fill the window with any remaining input. */
     have = s->window_size - s->strstart - 1;
-    if (s->strm->avail_in > have && s->block_start >= s->w_size) {
+    if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) {
         /* Slide the window down. */
         s->block_start -= s->w_size;
         s->strstart -= s->w_size;
diff --git a/gzwrite.c b/gzwrite.c
index 2420514..c29308b 100644
--- a/gzwrite.c
+++ b/gzwrite.c
@@ -225,7 +225,7 @@
         /* directly compress user buffer to file */
         state->strm.next_in = (z_const Bytef *)buf;
         do {
-            unsigned n = -1;
+            unsigned n = (unsigned)-1;
             if (n > len)
                 n = len;
             state->strm.avail_in = n;
diff --git a/inftrees.c b/inftrees.c
index 0ea34eb..8b2ad4f 100644
--- a/inftrees.c
+++ b/inftrees.c
@@ -188,7 +188,7 @@
         extra = lext;
         match = 257;
         break;
-    case DISTS:
+    default:    /* DISTS */
         base = dbase;
         extra = dext;
         match = 0;
@@ -214,7 +214,7 @@
     for (;;) {
         /* create table entry */
         here.bits = (unsigned char)(len - drop);
-        if (work[sym] + 1 < match) {
+        if (work[sym] + 1U < match) {
             here.op = (unsigned char)0;
             here.val = work[sym];
         }
diff --git a/test/example.c b/test/example.c
index 104b2b7..f008749 100644
--- a/test/example.c
+++ b/test/example.c
@@ -59,13 +59,13 @@
     void *q;
     unsigned n, m;
 {
-    q = Z_NULL;
+    (void)q;
     return calloc(n, m);
 }
 
 void myfree(void *q, void *p)
 {
-    q = Z_NULL;
+    (void)q;
     free(p);
 }
 
@@ -573,7 +573,8 @@
     }
 
 #ifdef Z_SOLO
-    argc = strlen(argv[0]);
+    (void)argc;
+    (void)argv;
 #else
     test_compress(compr, comprLen, uncompr, uncomprLen);
 
diff --git a/test/minigzip.c b/test/minigzip.c
index 850458c..b392304 100644
--- a/test/minigzip.c
+++ b/test/minigzip.c
@@ -156,14 +156,14 @@
     void *q;
     unsigned n, m;
 {
-    q = Z_NULL;
+    (void)q;
     return calloc(n, m);
 }
 
 void myfree(q, p)
     void *q, *p;
 {
-    q = Z_NULL;
+    (void)q;
     free(p);
 }
 
diff --git a/trees.c b/trees.c
index 685a388..559a0de 100644
--- a/trees.c
+++ b/trees.c
@@ -870,7 +870,7 @@
     bi_windup(s);        /* align on byte boundary */
     put_short(s, (ush)stored_len);
     put_short(s, (ush)~stored_len);
-    zmemcpy(s->pending_buf + s->pending, buf, stored_len);
+    zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len);
     s->pending += stored_len;
 #ifdef ZLIB_DEBUG
     s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;