From a9316863176f2e66f78b050b772fe87af3462f2c Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Fri, 27 Jan 2017 11:02:58 +0100
Subject: [PATCH] pcm/SampleFormat: workaround for GCC 4.9 "constexpr" bug

GCC 4.9 has incomplete C++14 support.  Specifically, it doesn't allow
switch/case in "constexpr" functions.
---
 NEWS                     |  1 +
 src/pcm/SampleFormat.hxx | 10 ++++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index 49b8568d9..5801b90bd 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
 ver 0.20.4 (not yet released)
+* workaround for GCC 4.9 "constexpr" bug
 
 ver 0.20.3 (2017/01/25)
 * protocol
diff --git a/src/pcm/SampleFormat.hxx b/src/pcm/SampleFormat.hxx
index 25e6352b6..9ac2c8dab 100644
--- a/src/pcm/SampleFormat.hxx
+++ b/src/pcm/SampleFormat.hxx
@@ -64,7 +64,10 @@ enum class SampleFormat : uint8_t {
 /**
  * Checks whether the sample format is valid.
  */
-static constexpr inline bool
+#if !GCC_OLDER_THAN(5,0)
+constexpr
+#endif
+static inline bool
 audio_valid_sample_format(SampleFormat format)
 {
 	switch (format) {
@@ -83,7 +86,10 @@ audio_valid_sample_format(SampleFormat format)
 	return false;
 }
 
-static constexpr inline unsigned
+#if !GCC_OLDER_THAN(5,0)
+constexpr
+#endif
+static inline unsigned
 sample_format_size(SampleFormat format)
 {
 	switch (format) {