diff --git a/Eigen/src/Core/ProductEvaluators.h b/Eigen/src/Core/ProductEvaluators.h index bd63b87ff..2cdcf1c02 100644 --- a/Eigen/src/Core/ProductEvaluators.h +++ b/Eigen/src/Core/ProductEvaluators.h @@ -1007,7 +1007,7 @@ struct transposition_matrix_product StorageIndex j = 0; const typename Dest::Scalar *dst_data = internal::extract_data(dst); - if(!(is_same::value && dst_data == extract_data(mat))) + if(!(is_same::value && dst_data!=0 && dst_data == extract_data(mat))) dst = mat; for(Index k=(Transposed?size-1:0) ; Transposed?k>=0:k class HouseholderS { workspace.resize(rows()); Index vecs = m_length; + const typename Dest::Scalar *dst_data = internal::extract_data(dst); if( internal::is_same::type,Dest>::value - && internal::extract_data(dst) == internal::extract_data(m_vectors)) + && dst_data!=0 && dst_data == internal::extract_data(m_vectors)) { // in-place dst.diagonal().setOnes();