diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index 60dcb4866..0f30e8817 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -910,6 +910,22 @@ #define EIGEN_UNUSED #endif +#if EIGEN_COMP_GNUC + #define EIGEN_PRAGMA(tokens) _Pragma(#tokens) + #define EIGEN_DIAGNOSTICS(tokens) EIGEN_PRAGMA(GCC diagnostic tokens) + #define EIGEN_DIAGNOSTICS_OFF(msc, gcc) EIGEN_DIAGNOSTICS(gcc) +#elif EIGEN_COMP_MSVC + #define EIGEN_PRAGMA(tokens) __pragma(tokens) + #define EIGEN_DIAGNOSTICS(tokens) EIGEN_PRAGMA(warning(tokens)) + #define EIGEN_DIAGNOSTICS_OFF(msc, gcc) EIGEN_DIAGNOSTICS(msc) +#else + #define EIGEN_PRAGMA(tokens) + #define EIGEN_DIAGNOSTICS(tokens) + #define EIGEN_DIAGNOSTICS_OFF(msc, gcc) +#endif + +#define EIGEN_DISABLE_DEPRECATED_WARNING EIGEN_DIAGNOSTICS_OFF(disable : 4996, ignored "-Wdeprecated-declarations") + // Suppresses 'unused variable' warnings. namespace Eigen { namespace internal { diff --git a/Eigen/src/SVD/BDCSVD.h b/Eigen/src/SVD/BDCSVD.h index f9e0c6259..094944263 100644 --- a/Eigen/src/SVD/BDCSVD.h +++ b/Eigen/src/SVD/BDCSVD.h @@ -57,6 +57,9 @@ struct allocate_small_svd { } }; +EIGEN_DIAGNOSTICS(push) +EIGEN_DISABLE_DEPRECATED_WARNING + template struct allocate_small_svd { static void run(JacobiSVD& smallSvd, Index rows, Index cols, unsigned int computationOptions) { @@ -64,6 +67,8 @@ struct allocate_small_svd { } }; +EIGEN_DIAGNOSTICS(pop) + } // end namespace internal /** \ingroup SVD_Module