Core: clean up remaining nested const storage

libeigen/eigen!2457

Closes #178
diff --git a/Eigen/src/Core/ConcatOp.h b/Eigen/src/Core/ConcatOp.h
index bbb5bd1..c01f984 100644
--- a/Eigen/src/Core/ConcatOp.h
+++ b/Eigen/src/Core/ConcatOp.h
@@ -290,8 +290,8 @@
     return ploadSegment<PacketType>(tmp, begin, count);
   }
 
-  const LhsNested m_lhs;
-  const RhsNested m_rhs;
+  LhsNested m_lhs;
+  RhsNested m_rhs;
   evaluator<LhsNestedCleaned> m_lhsImpl;
   evaluator<RhsNestedCleaned> m_rhsImpl;
   const variable_if_dynamic<Index, LhsType::RowsAtCompileTime> m_lhsRows;
diff --git a/Eigen/src/Core/CoreEvaluators.h b/Eigen/src/Core/CoreEvaluators.h
index d619255..0d70119 100644
--- a/Eigen/src/Core/CoreEvaluators.h
+++ b/Eigen/src/Core/CoreEvaluators.h
@@ -1599,7 +1599,7 @@
   }
 
  protected:
-  const ArgTypeNested m_arg;
+  ArgTypeNested m_arg;
   evaluator<ArgTypeNestedCleaned> m_argImpl;
   const variable_if_dynamic<Index, ArgType::RowsAtCompileTime> m_rows;
   const variable_if_dynamic<Index, ArgType::ColsAtCompileTime> m_cols;
diff --git a/Eigen/src/Core/products/SelfadjointProduct.h b/Eigen/src/Core/products/SelfadjointProduct.h
index 4a453b1..0e0f349 100644
--- a/Eigen/src/Core/products/SelfadjointProduct.h
+++ b/Eigen/src/Core/products/SelfadjointProduct.h
@@ -213,7 +213,7 @@
 template <typename DerivedU>
 EIGEN_DEVICE_FUNC SelfAdjointView<MatrixType, UpLo>& SelfAdjointView<MatrixType, UpLo>::rankUpdate(
     const MatrixBase<DerivedU>& u, const Scalar& alpha) {
-  selfadjoint_product_selector<MatrixType, DerivedU, UpLo>::run(_expression().const_cast_derived(), u.derived(), alpha);
+  selfadjoint_product_selector<MatrixType, DerivedU, UpLo>::run(nestedExpression(), u.derived(), alpha);
 
   return *this;
 }
diff --git a/Eigen/src/Core/products/SelfadjointRank2Update.h b/Eigen/src/Core/products/SelfadjointRank2Update.h
index 75e4ceb..d052dfb 100644
--- a/Eigen/src/Core/products/SelfadjointRank2Update.h
+++ b/Eigen/src/Core/products/SelfadjointRank2Update.h
@@ -247,8 +247,10 @@
       Map<typename ActualVType_::PlainObject>(vPtr, size) = actualV;
   }
 
-  internal::selfadjoint_rank2_update_selector<Scalar, Index, (IsRowMajor ? int(UpLo == Upper ? Lower : Upper) : UpLo)>::
-      run(size, _expression().const_cast_derived().data(), _expression().outerStride(), uPtr, vPtr, actualAlpha);
+  internal::selfadjoint_rank2_update_selector<
+      Scalar, Index, (IsRowMajor ? int(UpLo == Upper ? Lower : Upper) : UpLo)>::run(size, nestedExpression().data(),
+                                                                                    nestedExpression().outerStride(),
+                                                                                    uPtr, vPtr, actualAlpha);
 
   return *this;
 }
diff --git a/unsupported/Eigen/src/AutoDiff/CoherentPadOp.h b/unsupported/Eigen/src/AutoDiff/CoherentPadOp.h
index 0659e9a..696ef5b 100644
--- a/unsupported/Eigen/src/AutoDiff/CoherentPadOp.h
+++ b/unsupported/Eigen/src/AutoDiff/CoherentPadOp.h
@@ -140,7 +140,7 @@
   }
 
  protected:
-  const ArgTypeNested m_arg;
+  ArgTypeNested m_arg;
   evaluator<ArgTypeNestedCleaned> m_argImpl;
   const variable_if_dynamic<Index, ArgTypeNestedCleaned::SizeAtCompileTime> m_size;
 };
diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h b/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
index 0014700..6217ab8 100644
--- a/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
+++ b/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
@@ -490,7 +490,7 @@
   Index cols() const { return m_A.cols(); }
 
  private:
-  const DerivedNested m_A;
+  DerivedNested m_A;
   StemFunction* m_f;
 };
 
diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h b/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
index 40e1b1d..cbedb1e 100644
--- a/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
+++ b/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
@@ -343,7 +343,7 @@
   Index cols() const { return m_A.cols(); }
 
  private:
-  const DerivedNested m_A;
+  DerivedNested m_A;
 };
 
 namespace internal {
diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h b/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
index 34e7531..a90ffa6 100644
--- a/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
+++ b/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
@@ -324,7 +324,7 @@
   Index cols() const { return m_src.cols(); }
 
  protected:
-  const DerivedNested m_src;
+  DerivedNested m_src;
 };
 
 namespace internal {