diff --git a/Eigen/src/Core/Reshape.h b/Eigen/src/Core/Reshape.h index a773342ad..1397673e5 100644 --- a/Eigen/src/Core/Reshape.h +++ b/Eigen/src/Core/Reshape.h @@ -88,8 +88,13 @@ struct traits > : traits< FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1) ? LinearAccessBit : 0, FlagsLvalueBit = is_lvalue::value ? LvalueBit : 0, FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0, + IsSameShapeAtCompileTime = RowsAtCompileTime == ReshapeRows + && ColsAtCompileTime == ReshapeCols + && RowsAtCompileTime != Dynamic + && ColsAtCompileTime != Dynamic, + MaskDirectAccessBit = IsSameShapeAtCompileTime ? DirectAccessBit : 0, Flags0 = traits::Flags & ( (HereditaryBits & ~RowMajorBit) | - DirectAccessBit | + MaskDirectAccessBit | MaskPacketAccessBit | MaskAlignedBit), Flags = Flags0 | FlagsLinearAccessBit | FlagsLvalueBit | FlagsRowMajorBit