Commit a1afe9af authored by Max Kellermann's avatar Max Kellermann

util/Compiler.h: add gcc_fallthrough

Works around build failures with ccache which may feed processed code to GCC, which doesn't have the "fall through" code comments.
parent fe598e7d
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include "CrossFade.hxx" #include "CrossFade.hxx"
#include "tag/Tag.hxx" #include "tag/Tag.hxx"
#include "Idle.hxx" #include "Idle.hxx"
#include "util/Compiler.h"
#include "util/Domain.hxx" #include "util/Domain.hxx"
#include "thread/Name.hxx" #include "thread/Name.hxx"
#include "Log.hxx" #include "Log.hxx"
...@@ -1171,6 +1172,7 @@ try { ...@@ -1171,6 +1172,7 @@ try {
} }
/* fall through */ /* fall through */
gcc_fallthrough;
case PlayerCommand::PAUSE: case PlayerCommand::PAUSE:
next_song.reset(); next_song.reset();
......
...@@ -143,6 +143,12 @@ ...@@ -143,6 +143,12 @@
#define gcc_flatten #define gcc_flatten
#endif #endif
#if CLANG_OR_GCC_VERSION(7,0)
#define gcc_fallthrough __attribute__((fallthrough))
#else
#define gcc_fallthrough
#endif
#ifndef __cplusplus #ifndef __cplusplus
/* plain C99 has "restrict" */ /* plain C99 has "restrict" */
#define gcc_restrict restrict #define gcc_restrict restrict
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
*/ */
#include "format.h" #include "format.h"
#include "util/Compiler.h"
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h> #include <stdio.h>
...@@ -238,6 +239,7 @@ format_object2(const char *format, const char **last, const void *object, ...@@ -238,6 +239,7 @@ format_object2(const char *format, const char **last, const void *object,
} }
/* fall through */ /* fall through */
gcc_fallthrough;
default: default:
/* pass-through non-escaped portions of the format string */ /* pass-through non-escaped portions of the format string */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment