File varnish-5.1.2-add-fallthrough-comments.patch of Package varnish

GCC 7 introduces new warnings, including implicit fallthrough in switch blocks;
see https://gcc.gnu.org/gcc-7/changes.html#c-family. This warnings are turned
into errors in our case (-Werror).

This patch adds comments to make fallthroughs explicit and thus avoids compiler
warnings.

Note that most of these warnings are located in lib/libvgz, which will be
upgraded in a future release (see commit 5fae561 on master branch at
https://github.com/varnishcache/varnish-cache/commit/5fae561).

--
diff -up varnish-5.1.2/lib/libvgz/infback.c.orig varnish-5.1.2/lib/libvgz/infback.c
--- varnish-5.1.2/lib/libvgz/infback.c.orig	2017-06-25 18:25:04.558206683 +0200
+++ varnish-5.1.2/lib/libvgz/infback.c	2017-06-25 18:25:16.410207203 +0200
@@ -477,6 +477,7 @@ void FAR *out_desc;
             }
             Tracev((stderr, "inflate:       codes ok\n"));
             state->mode = LEN;
+            /* FALLTHROUGH */
 
         case LEN:
             /* use inflate_fast() if we have enough input and output */
diff -up varnish-5.1.2/lib/libvgz/inflate.c.orig varnish-5.1.2/lib/libvgz/inflate.c
--- varnish-5.1.2/lib/libvgz/inflate.c.orig	2017-06-25 18:24:51.234206098 +0200
+++ varnish-5.1.2/lib/libvgz/inflate.c	2017-06-25 18:25:42.098208329 +0200
@@ -719,6 +719,7 @@ int flush;
             if (state->flags & 0x0200) CRC2(state->check, hold);
             INITBITS();
             state->mode = EXLEN;
+            /* FALLTHROUGH */
         case EXLEN:
             if (state->flags & 0x0400) {
                 NEEDBITS(16);
@@ -731,6 +732,7 @@ int flush;
             else if (state->head != Z_NULL)
                 state->head->extra = Z_NULL;
             state->mode = EXTRA;
+            /* FALLTHROUGH */
         case EXTRA:
             if (state->flags & 0x0400) {
                 copy = state->length;
@@ -753,6 +755,7 @@ int flush;
             }
             state->length = 0;
             state->mode = NAME;
+            /* FALLTHROUGH */
         case NAME:
             if (state->flags & 0x0800) {
                 if (have == 0) goto inf_leave;
@@ -774,6 +777,7 @@ int flush;
                 state->head->name = Z_NULL;
             state->length = 0;
             state->mode = COMMENT;
+            /* FALLTHROUGH */
         case COMMENT:
             if (state->flags & 0x1000) {
                 if (have == 0) goto inf_leave;
@@ -794,6 +798,7 @@ int flush;
             else if (state->head != Z_NULL)
                 state->head->comment = Z_NULL;
             state->mode = HCRC;
+            /* FALLTHROUGH */
         case HCRC:
             if (state->flags & 0x0200) {
                 NEEDBITS(16);
@@ -817,6 +822,7 @@ int flush;
             strm->adler = state->check = ZSWAP32(hold);
             INITBITS();
             state->mode = DICT;
+            /* FALLTHROUGH */
         case DICT:
             if (state->havedict == 0) {
                 RESTORE();
@@ -824,8 +830,10 @@ int flush;
             }
             strm->adler = state->check = adler32(0L, Z_NULL, 0);
             state->mode = TYPE;
+            /* FALLTHROUGH */
         case TYPE:
             if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;
+            /* FALLTHROUGH */
         case TYPEDO:
             if (strm->start_bit == 0)
                 strm->start_bit = 8 * (strm->total_in + in - have) - bits;
@@ -881,8 +889,10 @@ int flush;
             INITBITS();
             state->mode = COPY_;
             if (flush == Z_TREES) goto inf_leave;
+            /* FALLTHROUGH */
         case COPY_:
             state->mode = COPY;
+            /* FALLTHROUGH */
         case COPY:
             copy = state->length;
             if (copy) {
@@ -1022,8 +1032,10 @@ int flush;
             Tracev((stderr, "inflate:       codes ok\n"));
             state->mode = LEN_;
             if (flush == Z_TREES) goto inf_leave;
+            /* FALLTHROUGH */
         case LEN_:
             state->mode = LEN;
+            /* FALLTHROUGH */
         case LEN:
             if (have >= 6 && left >= 258) {
                 RESTORE();
@@ -1073,6 +1085,7 @@ int flush;
             }
             state->extra = (unsigned)(here.op) & 15;
             state->mode = LENEXT;
+            /* FALLTHROUGH */
         case LENEXT:
             if (state->extra) {
                 NEEDBITS(state->extra);
@@ -1083,6 +1096,7 @@ int flush;
             Tracevv((stderr, "inflate:         length %u\n", state->length));
             state->was = state->length;
             state->mode = DIST;
+            /* FALLTHROUGH */
         case DIST:
             for (;;) {
                 here = state->distcode[BITS(state->distbits)];
@@ -1110,6 +1124,7 @@ int flush;
             state->offset = (unsigned)here.val;
             state->extra = (unsigned)(here.op) & 15;
             state->mode = DISTEXT;
+            /* FALLTHROUGH */
         case DISTEXT:
             if (state->extra) {
                 NEEDBITS(state->extra);
@@ -1126,6 +1141,7 @@ int flush;
 #endif
             Tracevv((stderr, "inflate:         distance %u\n", state->offset));
             state->mode = MATCH;
+            /* FALLTHROUGH */
         case MATCH:
             if (left == 0) goto inf_leave;
             copy = out - left;
@@ -1201,6 +1217,7 @@ int flush;
             }
 #ifdef GUNZIP
             state->mode = LENGTH;
+            /* FALLTHROUGH */
         case LENGTH:
             if (state->wrap && state->flags) {
                 NEEDBITS(32);
@@ -1214,6 +1231,7 @@ int flush;
             }
 #endif
             state->mode = DONE;
+            /* FALLTHROUGH */
         case DONE:
             ret = Z_STREAM_END;
             goto inf_leave;
diff -up varnish-5.1.2/bin/varnishadm/varnishadm.c.orig varnish-5.1.2/bin/varnishadm/varnishadm.c
--- varnish-5.1.2/bin/varnishadm/varnishadm.c.orig	2017-06-25 18:38:35.790242267 +0200
+++ varnish-5.1.2/bin/varnishadm/varnishadm.c	2017-06-25 18:41:45.510250589 +0200
@@ -462,6 +462,7 @@ main(int argc, char * const *argv)
 		case 'h':
 			/* Usage help */
 			usage(0);
+			break;
 		case 'n':
 			n_arg = optarg;
 			break;
openSUSE Build Service is sponsored by