53 lines
2.5 KiB
C++
53 lines
2.5 KiB
C++
#pragma once
|
|
|
|
#if defined(__GNUC__) && !defined(__clang__)
|
|
|
|
#if __GNUC__ >= 11
|
|
|
|
#define AH_DIAGNOSTIC_WERROR() \
|
|
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wall\"") \
|
|
_Pragma("GCC diagnostic error \"-Wextra\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wc++0x-compat\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wc++11-compat\"")
|
|
#define AH_DIAGNOSTIC_POP() _Pragma("GCC diagnostic pop")
|
|
#define AH_DIAGNOSTIC_EXTERNAL_HEADER() \
|
|
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wall\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wextra\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") _Pragma( \
|
|
"GCC diagnostic ignored \"-Wunused-parameter\"") \
|
|
_Pragma("GCC diagnostic warning \"-Wcast-function-type\"") \
|
|
_Pragma("GCC diagnostic warning \"-Wdeprecated-copy\"")
|
|
/* For the last two: see https://github.com/PaulStoffregen/cores/issues/660 */
|
|
|
|
#elif __GNUC__ >= 5
|
|
|
|
#define AH_DIAGNOSTIC_WERROR() \
|
|
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wall\"") \
|
|
_Pragma("GCC diagnostic error \"-Wextra\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wc++0x-compat\"")
|
|
#define AH_DIAGNOSTIC_POP() _Pragma("GCC diagnostic pop")
|
|
#define AH_DIAGNOSTIC_EXTERNAL_HEADER() \
|
|
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wall\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wextra\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
|
|
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"")
|
|
|
|
#else // __GNUC__ < 5
|
|
|
|
#define AH_DIAGNOSTIC_WERROR() \
|
|
_Pragma("GCC diagnostic push") \
|
|
_Pragma("GCC diagnostic ignored \"-Wattributes\"")
|
|
#define AH_DIAGNOSTIC_POP() _Pragma("GCC diagnostic pop")
|
|
#define AH_DIAGNOSTIC_EXTERNAL_HEADER() \
|
|
_Pragma("GCC diagnostic push") \
|
|
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"")
|
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
#define AH_DIAGNOSTIC_WERROR()
|
|
#define AH_DIAGNOSTIC_POP()
|
|
#define AH_DIAGNOSTIC_EXTERNAL_HEADER()
|
|
|
|
#endif |