aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/mapped_matrix.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2018-07-18 02:26:43 -0700
committerGravatar Gael Guennebaud <g.gael@free.fr>2018-07-18 02:26:43 -0700
commit3a2dc3869ed77cb6eca2beaad5c0af7d5134f15c (patch)
tree823109e70e2859b8b3a8687bdea81726e1d66529 /test/mapped_matrix.cpp
parentc95aacab90e9d8bb9f9e082395b3b843a530fa41 (diff)
Fix weird issue with MSVC 2013
Diffstat (limited to 'test/mapped_matrix.cpp')
-rw-r--r--test/mapped_matrix.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/test/mapped_matrix.cpp b/test/mapped_matrix.cpp
index e1106ba42..0ea136ae6 100644
--- a/test/mapped_matrix.cpp
+++ b/test/mapped_matrix.cpp
@@ -62,8 +62,9 @@ template<typename MatrixType> void map_class_matrix(const MatrixType& m)
for(int i = 0; i < size; i++) array2[i] = Scalar(1);
// array3unaligned -> unaligned pointer to heap
Scalar* array3 = new Scalar[size+1];
- for(int i = 0; i < size+1; i++) array3[i] = Scalar(1);
- Scalar* array3unaligned = internal::UIntPtr(array3)%EIGEN_MAX_ALIGN_BYTES == 0 ? array3+1 : array3;
+ Index sizep1 = size + 1; // <- without this temporary MSVC 2103 generates bad code
+ for(Index i = 0; i < sizep1; i++) array3[i] = Scalar(1);
+ Scalar* array3unaligned = (internal::UIntPtr(array3)%EIGEN_MAX_ALIGN_BYTES) == 0 ? array3+1 : array3;
Scalar array4[256];
if(size<=256)
for(int i = 0; i < size; i++) array4[i] = Scalar(1);