diff -rupN b/main.c a/main.c
--- b/main.c	2018-03-21 13:37:50.003415500 +0530
+++ a/main.c	2018-03-21 15:41:11.070014998 +0530
@@ -735,6 +735,7 @@ static void handler(int sig)
     switch (sig) {
     case SIGALRM:
 	sighandled |= GOT_SIGALRM;
+	__attribute__ ((fallthrough));
     case SIGINT:
     case SIGTERM:
 	sighandled |= GOT_SIGINT;
diff -rupN b/pim.c a/pim.c
--- b/pim.c	2018-03-21 15:43:32.050248200 +0530
+++ a/pim.c	2018-03-21 15:48:19.006390432 +0530
@@ -204,6 +204,7 @@ static void accept_pim(ssize_t recvlen)
 	    logit(LOG_INFO, 0, "ignore %s from %s to %s",
 		  packet_kind(IPPROTO_PIM, pim->pim_type, 0), inet_fmt(src, s1, sizeof(s1)),
 		  inet_fmt(dst, s2, sizeof(s2)));
+	    __attribute__ ((fallthrough));
 	case PIM_CAND_RP_ADV:
 	    receive_pim_cand_rp_adv(src, dst, (char *)(pim), pimlen);
 	    break;
--- b/debug.c     2018-11-14 19:05:20.488196139 +0530
+++ a/debug.c 2018-11-14 19:13:35.684329645 +0530
@@ -217,12 +217,14 @@
                         case DVMRP_NEIGHBORS2:
                             return LOG_INFO;
                     }
+                    __attribute__ ((fallthrough));
                 case IGMP_PIM:
                     /* PIM v1 */
                     switch (code) {
                         default:
                             return LOG_INFO;
                     }
+                    __attribute__ ((fallthrough));
                 default:
                     return LOG_WARNING;
             }
