From 76548f868453259834c6b96a3c2e434200d9d289 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Fri, 16 Jun 2023 22:45:08 -0700 Subject: Ensure arrays are 16-byte aligned before casting to uint128 PiperOrigin-RevId: 541111597 Change-Id: I88165130e30e548a03d8d6173dadab33dc18b21e --- absl/random/internal/randen_benchmarks.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/absl/random/internal/randen_benchmarks.cc b/absl/random/internal/randen_benchmarks.cc index f589172c..ec086cea 100644 --- a/absl/random/internal/randen_benchmarks.cc +++ b/absl/random/internal/randen_benchmarks.cc @@ -47,8 +47,10 @@ static constexpr size_t kSeedSizeT = Randen::kSeedBytes / sizeof(uint32_t); // Randen implementation benchmarks. template struct AbsorbFn : public T { - mutable uint64_t state[kStateSizeT] = {}; - mutable uint32_t seed[kSeedSizeT] = {}; + // These are both cast to uint128* in the RandenHwAes implementation, so + // ensure they are 16 byte aligned. + alignas(16) mutable uint64_t state[kStateSizeT] = {}; + alignas(16) mutable uint32_t seed[kSeedSizeT] = {}; static constexpr size_t bytes() { return sizeof(seed); } -- cgit v1.2.3