From 27367017bd0aef15a67ce76b8e263a94c2508a1c Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 11 Aug 2022 18:43:31 +0000 Subject: [PATCH] Disable bad "deprecated warning" edge-case in BDCSVD --- Eigen/src/Core/util/Macros.h | 16 ++++++++++++++++ Eigen/src/SVD/BDCSVD.h | 5 +++++ 2 files changed, 21 insertions(+) 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