Avoid UB in ploaduSegment

This commit is contained in:
Rasmus Munk Larsen 2025-04-25 21:13:52 +00:00
parent 2265a5e025
commit 7294434099

View File

@ -1566,6 +1566,7 @@ EIGEN_DEVICE_FUNC inline Packet ploaduSegment(const typename unpacket_traits<Pac
constexpr Index PacketSize = unpacket_traits<Packet>::size; constexpr Index PacketSize = unpacket_traits<Packet>::size;
eigen_assert((begin >= 0 && count >= 0 && begin + count <= PacketSize) && "invalid range"); eigen_assert((begin >= 0 && count >= 0 && begin + count <= PacketSize) && "invalid range");
Scalar aux[PacketSize]; Scalar aux[PacketSize];
memset(static_cast<void*>(aux), 0x00, sizeof(Scalar) * PacketSize);
smart_copy(from + begin, from + begin + count, aux + begin); smart_copy(from + begin, from + begin + count, aux + begin);
return ploadu<Packet>(aux); return ploadu<Packet>(aux);
} }