aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/warnings.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/epee/include/warnings.h')
-rw-r--r--contrib/epee/include/warnings.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/contrib/epee/include/warnings.h b/contrib/epee/include/warnings.h
new file mode 100644
index 000000000..37d7a2900
--- /dev/null
+++ b/contrib/epee/include/warnings.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#if defined(_MSC_VER)
+
+#define PUSH_WARNINGS __pragma(warning(push))
+#define POP_WARNINGS __pragma(warning(pop))
+#define DISABLE_VS_WARNINGS(w) __pragma(warning(disable: w))
+#define DISABLE_GCC_WARNING(w)
+#define DISABLE_CLANG_WARNING(w)
+#define DISABLE_GCC_AND_CLANG_WARNING(w)
+
+#else
+
+#include <boost/preprocessor/stringize.hpp>
+
+#define PUSH_WARNINGS _Pragma("GCC diagnostic push")
+#define POP_WARNINGS _Pragma("GCC diagnostic pop")
+#define DISABLE_VS_WARNINGS(w)
+
+#if defined(__clang__)
+#define DISABLE_GCC_WARNING(w)
+#define DISABLE_CLANG_WARNING DISABLE_GCC_AND_CLANG_WARNING
+#else
+#define DISABLE_GCC_WARNING DISABLE_GCC_AND_CLANG_WARNING
+#define DISABLE_CLANG_WARNING(w)
+#endif
+
+#define DISABLE_GCC_AND_CLANG_WARNING(w) _Pragma(BOOST_PP_STRINGIZE(GCC diagnostic ignored BOOST_PP_STRINGIZE(-W##w)))
+
+#endif \ No newline at end of file