//! #include <dirty_header.h> // some header that can generate warnings
//! #include <Standard_WarningsRestore.hxx>
-#ifdef _MSC_VER
-#pragma warning(push, 0)
+#if defined(__clang__)
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wall"
+ #pragma clang diagnostic ignored "-Wextra"
+#elif defined(_MSC_VER)
+ #pragma warning(push, 0)
+#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+ // -Wall does not work here for GCC, so the only way is to list all most important warnings...
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+ #pragma GCC diagnostic ignored "-Wunused-variable"
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
+ #pragma GCC diagnostic ignored "-Wenum-compare"
+ #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))
+ #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+ #endif
#endif
-
//! #include <dirty_header.h> // some header that can generate warnings
//! #include <Standard_WarningsRestore.hxx>
-#ifdef _MSC_VER
-#pragma warning(pop)
+#if defined(__clang__)
+ #pragma clang diagnostic pop
+#elif defined(_MSC_VER)
+ #pragma warning(pop)
+#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+ #pragma GCC diagnostic pop
#endif