*/
#include <stdarg.h>
+#include <algorithm>
#include <folly/GroupVarint.h>
// On platforms where it's not supported, GroupVarint will be compiled out.
EXPECT_EQ(expectedBytes.size(), size);
std::vector<char> foundBytes;
- foundBytes.resize(size + 4);
+
+ // ssse3 decoding requires that the source buffer have length >= 17,
+ // so that it can read 128 bits from &start[1] via _mm_loadu_si128.
+ foundBytes.resize(std::max(size + 4, 17UL));
char* start = &(foundBytes.front());
char* p = GroupVarint32::encode(start, a, b, c, d);
EXPECT_EQ((void*)(start + size), (void*)p);