Disable -Wimplicit-fallthrough for funcs.generated.h
This is code generated by gperf, so there's nothing we can do about it. The code does have /*FALLTHROUGH*/ comments but clang doesn't recognize them.
This commit is contained in:
parent
8c49e3d509
commit
37fa8d3f44
|
@ -267,8 +267,8 @@ else()
|
|||
-Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion
|
||||
-Wmissing-prototypes)
|
||||
|
||||
check_c_compiler_flag(-Wimplicit-fallthrough HAS_WIMPLICIT_FALLTHROUGH_FLAG)
|
||||
if(HAS_WIMPLICIT_FALLTHROUGH_FLAG)
|
||||
check_c_compiler_flag(-Wimplicit-fallthrough HAVE_WIMPLICIT_FALLTHROUGH_FLAG)
|
||||
if(HAVE_WIMPLICIT_FALLTHROUGH_FLAG)
|
||||
add_compile_options(-Wimplicit-fallthrough)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -60,5 +60,6 @@
|
|||
|
||||
#cmakedefine HAVE_EXECINFO_BACKTRACE
|
||||
#cmakedefine HAVE_BUILTIN_ADD_OVERFLOW
|
||||
#cmakedefine HAVE_WIMPLICIT_FALLTHROUGH_FLAG
|
||||
|
||||
#endif // AUTO_CONFIG_H
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "nvim/indent.h"
|
||||
#include "nvim/indent_c.h"
|
||||
#include "nvim/lua/executor.h"
|
||||
#include "nvim/macros.h"
|
||||
#include "nvim/mark.h"
|
||||
#include "nvim/math.h"
|
||||
#include "nvim/memline.h"
|
||||
|
@ -86,8 +87,10 @@ KHASH_MAP_INIT_STR(functions, VimLFuncDef)
|
|||
#endif
|
||||
|
||||
PRAGMA_DIAG_PUSH_IGNORE_MISSING_PROTOTYPES
|
||||
PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH
|
||||
#include "funcs.generated.h"
|
||||
PRAGMA_DIAG_POP
|
||||
PRAGMA_DIAG_POP
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef NVIM_MACROS_H
|
||||
#define NVIM_MACROS_H
|
||||
|
||||
#include "auto/config.h"
|
||||
|
||||
// EXTERN is only defined in main.c. That's where global variables are
|
||||
// actually defined and initialized.
|
||||
#ifndef EXTERN
|
||||
|
@ -203,16 +205,33 @@
|
|||
# define PRAGMA_DIAG_PUSH_IGNORE_MISSING_PROTOTYPES \
|
||||
_Pragma("clang diagnostic push") \
|
||||
_Pragma("clang diagnostic ignored \"-Wmissing-prototypes\"")
|
||||
# ifdef HAVE_WIMPLICIT_FALLTHROUGH_FLAG
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH \
|
||||
_Pragma("clang diagnostic push") \
|
||||
_Pragma("clang diagnostic ignored \"-Wimplicit-fallthrough\"")
|
||||
# else
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH \
|
||||
_Pragma("clang diagnostic push")
|
||||
# endif
|
||||
# define PRAGMA_DIAG_POP \
|
||||
_Pragma("clang diagnostic pop")
|
||||
#elif defined(__GNUC__)
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_MISSING_PROTOTYPES \
|
||||
_Pragma("GCC diagnostic push") \
|
||||
_Pragma("GCC diagnostic ignored \"-Wmissing-prototypes\"")
|
||||
# ifdef HAVE_WIMPLICIT_FALLTHROUGH_FLAG
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH \
|
||||
_Pragma("GCC diagnostic push") \
|
||||
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
|
||||
# else
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH \
|
||||
_Pragma("GCC diagnostic push")
|
||||
# endif
|
||||
# define PRAGMA_DIAG_POP \
|
||||
_Pragma("GCC diagnostic pop")
|
||||
#else
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_MISSING_PROTOTYPES
|
||||
# define PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH
|
||||
# define PRAGMA_DIAG_POP
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue