diff --git a/include/nm-macros-internal.h b/include/nm-macros-internal.h index 3c5adcc1cf..31e583bd81 100644 --- a/include/nm-macros-internal.h +++ b/include/nm-macros-internal.h @@ -84,7 +84,7 @@ * It's not that bad however, because gcc and clang often have the * same name for the same warning. */ -#if defined (__GNUC__) +#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define NM_PRAGMA_WARNING_DISABLE(warning) \ _Pragma("GCC diagnostic push"); \ _Pragma(_NM_PRAGMA_WARNING_DO(warning)) @@ -96,7 +96,7 @@ #define NM_PRAGMA_WARNING_DISABLE(warning) #endif -#if defined (__GNUC__) +#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define NM_PRAGMA_WARNING_REENABLE \ _Pragma("GCC diagnostic pop") #elif defined (__clang__) diff --git a/src/dhcp-manager/systemd-dhcp/src/shared/macro.h b/src/dhcp-manager/systemd-dhcp/src/shared/macro.h index e6cf6eecd7..bdda4dce10 100644 --- a/src/dhcp-manager/systemd-dhcp/src/shared/macro.h +++ b/src/dhcp-manager/systemd-dhcp/src/shared/macro.h @@ -46,6 +46,7 @@ #define _alignas_(x) __attribute__((aligned(__alignof(x)))) #define _cleanup_(x) __attribute__((cleanup(x))) +#if (defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) || defined (__clang__) /* Temporarily disable some warnings */ #define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \ _Pragma("GCC diagnostic push"); \ @@ -69,6 +70,14 @@ #define REENABLE_WARNING \ _Pragma("GCC diagnostic pop") +#else +#define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT +#define DISABLE_WARNING_FORMAT_NONLITERAL +#define DISABLE_WARNING_MISSING_PROTOTYPES +#define DISABLE_WARNING_NONNULL +#define DISABLE_WARNING_SHADOW +#define REENABLE_WARNING +#endif /* automake test harness */ #define EXIT_TEST_SKIP 77