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.
This commit is contained in:
Max Kellermann 2019-12-23 17:47:01 +01:00
parent fe598e7d30
commit a1afe9afc6
3 changed files with 10 additions and 0 deletions

View File

@ -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 {
} }
/* fall through */ /* fall through */
gcc_fallthrough;
case PlayerCommand::PAUSE: case PlayerCommand::PAUSE:
next_song.reset(); next_song.reset();

View File

@ -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

View File

@ -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,
} }
/* 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 */