diff --git a/Eigen/src/Core/MapBase.h b/Eigen/src/Core/MapBase.h index f7f9ccdb7..6b1a25ce2 100644 --- a/Eigen/src/Core/MapBase.h +++ b/Eigen/src/Core/MapBase.h @@ -189,7 +189,7 @@ template class MapBase EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(ei_traits::Flags&PacketAccessBit, ei_inner_stride_at_compile_time::ret==1), PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1); - ei_assert(EIGEN_IMPLIES(ei_traits::Flags&AlignedBit, (size_t(m_data) % 16 == 0)) + ei_assert(EIGEN_IMPLIES(ei_traits::Flags&AlignedBit, (size_t(m_data) % (sizeof(Scalar)*ei_packet_traits::size)) == 0) && "data is not aligned"); } diff --git a/test/geo_quaternion.cpp b/test/geo_quaternion.cpp index 953ea158a..bfe15320a 100644 --- a/test/geo_quaternion.cpp +++ b/test/geo_quaternion.cpp @@ -134,7 +134,9 @@ template void mapQuaternion(void){ VERIFY_IS_APPROX(q1.coeffs(), q2.coeffs()); VERIFY_IS_APPROX(q1.coeffs(), q3.coeffs()); + #ifdef EIGEN_VECTORIZE VERIFY_RAISES_ASSERT((MQuaternionA(array3unaligned))); + #endif } void test_geo_quaternion() diff --git a/test/map.cpp b/test/map.cpp index fa4427ba3..9b0301ec0 100644 --- a/test/map.cpp +++ b/test/map.cpp @@ -45,7 +45,9 @@ template void map_class_vector(const VectorType& m) VectorType ma3 = Map(array3unaligned, size); VERIFY_IS_EQUAL(ma1, ma2); VERIFY_IS_EQUAL(ma1, ma3); + #ifdef EIGEN_VECTORIZE VERIFY_RAISES_ASSERT((Map(array3unaligned, size))) + #endif ei_aligned_delete(array1, size); ei_aligned_delete(array2, size);