From 5c3e55b5b18fd35e987b1abc662fdc4aa3d6c9c0 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Wed, 16 Nov 2016 19:50:38 +0100
Subject: [PATCH] {input,output}/alsa: fix gcc 7.0 -Wimplicit-fallthrough

---
 NEWS                                    | 1 +
 src/input/plugins/AlsaInputPlugin.cxx   | 4 ++++
 src/output/plugins/AlsaOutputPlugin.cxx | 3 +++
 3 files changed, 8 insertions(+)

diff --git a/NEWS b/NEWS
index 68d33c2b7..ebd959a6e 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ ver 0.19.20 (not yet released)
   - sidplay: fix playback speed with libsidplayfp
 * output
   - winmm: fix 8 bit playback
+* fix gcc 7.0 -Wimplicit-fallthrough
 
 ver 0.19.19 (2016/08/23)
 * decoder
diff --git a/src/input/plugins/AlsaInputPlugin.cxx b/src/input/plugins/AlsaInputPlugin.cxx
index f03f745c6..e5d1ae024 100644
--- a/src/input/plugins/AlsaInputPlugin.cxx
+++ b/src/input/plugins/AlsaInputPlugin.cxx
@@ -247,6 +247,10 @@ AlsaInputStream::Recover(int err)
 	case -EPIPE:
 		LogDebug(alsa_input_domain, "Buffer Overrun");
 		// drop through
+#if GCC_CHECK_VERSION(7,0)
+		[[fallthrough]];
+#endif
+
 	case -ESTRPIPE:
 	case -EINTR:
 		err = snd_pcm_recover(capture_handle, err, 1);
diff --git a/src/output/plugins/AlsaOutputPlugin.cxx b/src/output/plugins/AlsaOutputPlugin.cxx
index 28c374a00..14eaeeb5f 100644
--- a/src/output/plugins/AlsaOutputPlugin.cxx
+++ b/src/output/plugins/AlsaOutputPlugin.cxx
@@ -760,6 +760,9 @@ alsa_recover(AlsaOutput *ad, int err)
 		if (err == -EAGAIN)
 			return 0;
 		/* fall-through to snd_pcm_prepare: */
+#if GCC_CHECK_VERSION(7,0)
+		[[fallthrough]];
+#endif
 	case SND_PCM_STATE_SETUP:
 	case SND_PCM_STATE_XRUN:
 		ad->period_position = 0;