Fix a bug in commit 76e8c0455396446f8166c798da5efe879e010bdc:
diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
index 59335af..3e76827 100644
--- a/Eigen/src/Core/products/Parallelizer.h
+++ b/Eigen/src/Core/products/Parallelizer.h
@@ -99,7 +99,16 @@
#if defined(EIGEN_USE_BLAS) || (!defined(EIGEN_HAS_OPENMP) && !defined(EIGEN_GEMM_THREADPOOL))
-inline void manage_multi_threading(Action /*unused*/, int* /*unused*/) {}
+inline void manage_multi_threading(Action action, int* v) {
+ if (action == SetAction) {
+ eigen_internal_assert(v != nullptr);
+ } else if (action == GetAction) {
+ eigen_internal_assert(v != nullptr);
+ *v = 1;
+ } else {
+ eigen_internal_assert(false);
+ }
+}
template<typename Index> struct GemmParallelInfo {};
template <bool Condition, typename Functor, typename Index>
EIGEN_STRONG_INLINE void parallelize_gemm(const Functor& func, Index rows, Index cols,
@@ -212,7 +221,7 @@
// Note that the actual number of threads might be lower than the number of
// requested ones
Index actual_threads = omp_get_num_threads();
- GemmParallelInfo<Index> info(i, int(actual_threads), task_info);
+ GemmParallelInfo<Index> info(i, static_cast<int>(actual_threads), task_info);
Index blockCols = (cols / actual_threads) & ~Index(0x3);
Index blockRows = (rows / actual_threads);
@@ -237,7 +246,7 @@
auto task = [=, &func, &barrier, &task_info](int i)
{
Index actual_threads = threads;
- GemmParallelInfo<Index> info(i, int(actual_threads), task_info);
+ GemmParallelInfo<Index> info(i, static_cast<int>(actual_threads), task_info);
Index blockCols = (cols / actual_threads) & ~Index(0x3);
Index blockRows = (rows / actual_threads);
blockRows = (blockRows/Functor::Traits::mr)*Functor::Traits::mr;