Fix sparse warnings
diff --git a/Eigen/src/SparseCore/SparseMatrix.h b/Eigen/src/SparseCore/SparseMatrix.h
index 9ad8e4a..d5ebbed 100644
--- a/Eigen/src/SparseCore/SparseMatrix.h
+++ b/Eigen/src/SparseCore/SparseMatrix.h
@@ -246,7 +246,7 @@
         if (capacity > 0) {
           // implies uncompressed: push to back of vector
           m_innerNonZeros[outer]++;
-          m_data.index(end) = inner;
+          m_data.index(end) = StorageIndex(inner);
           m_data.value(end) = Scalar(0);
           return m_data.value(end);
         }
@@ -379,7 +379,7 @@
         Index count = 0;
         for(Index j=0; j<m_outerSize; ++j)
         {
-          newOuterIndex[j] = count;
+          newOuterIndex[j] = internal::convert_index<StorageIndex>(count);
           Index alreadyReserved = internal::convert_index<Index>(m_outerIndex[j+1] - m_outerIndex[j] - m_innerNonZeros[j]);
           Index reserveSize = internal::convert_index<Index>(reserveSizes[j]);
           Index toReserve = numext::maxi(reserveSize, alreadyReserved);
@@ -392,7 +392,6 @@
         {
           StorageIndex innerNNZ = m_innerNonZeros[j];
           StorageIndex begin = m_outerIndex[j];
-          StorageIndex end = begin + innerNNZ;
           StorageIndex target = newOuterIndex[j];
           m_data.moveChunk(begin, target, innerNNZ);
         }
@@ -504,7 +503,7 @@
         if (capacity > 0) {
           // implies uncompressed: push to back of vector
           m_innerNonZeros[j]++;
-          m_data.index(end) = i;
+          m_data.index(end) = StorageIndex(i);
           m_data.value(end) = Scalar(0);
           return m_data.value(end);
         }
@@ -529,8 +528,8 @@
       Index copyTarget = m_innerNonZeros[0];
       for (Index j = 1; j < m_outerSize; j++)
       {
-        Index end = start + m_innerNonZeros[j];
-        Index nextStart = m_outerIndex[j + 1];
+        StorageIndex end = start + m_innerNonZeros[j];
+        StorageIndex nextStart = m_outerIndex[j + 1];
         // dont forget to move the last chunk!
         bool breakUpCopy = (end != nextStart) || (j == m_outerSize - 1);
         if (breakUpCopy)
@@ -966,7 +965,7 @@
       eigen_assert(m_innerNonZeros[outer]<=(m_outerIndex[outer+1] - m_outerIndex[outer]));
 
       Index p = m_outerIndex[outer] + m_innerNonZeros[outer]++;
-      m_data.index(p) = convert_index(inner);
+      m_data.index(p) = StorageIndex(inner);
       m_data.value(p) = Scalar(0);
       return m_data.value(p);
     }
@@ -1032,7 +1031,7 @@
             Index capacity = m_outerIndex[j + 1] - end;
             Index dst = m_data.searchLowerIndex(begin, end, j);
             // the entry exists: update it now
-            if (dst != end && m_data.index(dst) == j) assignFunc.assignCoeff(m_data.value(dst), diaEval.coeff(j));
+            if (dst != end && m_data.index(dst) == StorageIndex(j)) assignFunc.assignCoeff(m_data.value(dst), diaEval.coeff(j));
             // the entry belongs at the back of the vector: push to back
             else if (dst == end && capacity > 0)
               assignFunc.assignCoeff(insertBackUncompressed(j, j), diaEval.coeff(j));
@@ -1450,7 +1449,7 @@
     if (capacity > 0) {
       // implies uncompressed: push to back of vector
       m_innerNonZeros[outer]++;
-      m_data.index(end) = inner;
+      m_data.index(end) = StorageIndex(inner);
       m_data.value(end) = Scalar(0);
       return m_data.value(end);
     }