aboutsummaryrefslogtreecommitdiff
path: root/zencore/include
diff options
context:
space:
mode:
Diffstat (limited to 'zencore/include')
-rw-r--r--zencore/include/zencore/zencore.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/zencore/include/zencore/zencore.h b/zencore/include/zencore/zencore.h
index 0b3b9e6a4..65b770310 100644
--- a/zencore/include/zencore/zencore.h
+++ b/zencore/include/zencore/zencore.h
@@ -83,16 +83,28 @@
__pragma(warning(disable : 4668)) /* use of undefined preprocessor macro */ \
__pragma(warning(disable : 4267)) /* '=': conversion from 'size_t' to 'US' */ \
__pragma(warning(disable : 4127))
-# else
-# define ZEN_THIRD_PARTY_INCLUDES_START
+# elif ZEN_COMPILER_CLANG
+# define ZEN_THIRD_PARTY_INCLUDES_START \
+ _Pragma("clang diagnostic push") \
+ _Pragma("clang diagnostic ignored \"-Wundef\"") \
+ _Pragma("clang diagnostic ignored \"-Wunused-parameter\"") \
+ _Pragma("clang diagnostic ignored \"-Wunused-variable\"")
+# elif ZEN_COMPILER_GCC
+# define ZEN_THIRD_PARTY_INCLUDES_START \
+ _Pragma("GCC diagnostic push") \
+ /* NB. ignoring -Wundef doesn't work with GCC */ \
+ _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
+ _Pragma("GCC diagnostic ignored \"-Wunused-variable\"")
# endif
#endif
#ifndef ZEN_THIRD_PARTY_INCLUDES_END
# if ZEN_COMPILER_MSC
# define ZEN_THIRD_PARTY_INCLUDES_END __pragma(warning(pop))
-# else
-# define ZEN_THIRD_PARTY_INCLUDES_END
+# elif ZEN_COMPILER_CLANG
+# define ZEN_THIRD_PARTY_INCLUDES_END _Pragma("clang diagnostic pop")
+# elif ZEN_COMPILER_GCC
+# define ZEN_THIRD_PARTY_INCLUDES_END _Pragma("GCC diagnostic pop")
# endif
#endif