From 7948499c1156f1a0779a0fd39051f551755d7ed2 Mon Sep 17 00:00:00 2001 From: Brady Date: Thu, 21 Sep 2023 20:01:40 -0500 Subject: [PATCH] Fix runtime segfault on Clang 17 --- src/arch/x86/AVX2.cpp | 2 +- src/arch/x86/AVX512.cpp | 2 +- src/arch/x86/SSE.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/arch/x86/AVX2.cpp b/src/arch/x86/AVX2.cpp index 720da42..43baba7 100644 --- a/src/arch/x86/AVX2.cpp +++ b/src/arch/x86/AVX2.cpp @@ -29,7 +29,7 @@ namespace hat::detail { scan_result find_pattern_avx2(const std::byte* begin, const std::byte* end, signature_view signature) { // 256 bit vector containing first signature byte repeated const auto firstByte = _mm256_set1_epi8(static_cast(*signature[0])); - const auto [signatureBytes, signatureMask] = load_signature_256(signature); + alignas(__m256i) const auto [signatureBytes, signatureMask] = load_signature_256(signature); begin = next_boundary_align(begin); if (begin >= end) { diff --git a/src/arch/x86/AVX512.cpp b/src/arch/x86/AVX512.cpp index e340985..7fefd92 100644 --- a/src/arch/x86/AVX512.cpp +++ b/src/arch/x86/AVX512.cpp @@ -29,7 +29,7 @@ namespace hat::detail { scan_result find_pattern_avx512(const std::byte* begin, const std::byte* end, signature_view signature) { // 512 bit vector containing first signature byte repeated const auto firstByte = _mm512_set1_epi8(static_cast(*signature[0])); - const auto [signatureBytes, signatureMask] = load_signature_512(signature); + alignas(__m512i) const auto [signatureBytes, signatureMask] = load_signature_512(signature); begin = next_boundary_align(begin); if (begin >= end) { diff --git a/src/arch/x86/SSE.cpp b/src/arch/x86/SSE.cpp index c592502..230bc96 100644 --- a/src/arch/x86/SSE.cpp +++ b/src/arch/x86/SSE.cpp @@ -29,7 +29,7 @@ namespace hat::detail { scan_result find_pattern_sse(const std::byte* begin, const std::byte* end, signature_view signature) { // 256 bit vector containing first signature byte repeated const auto firstByte = _mm_set1_epi8(static_cast(*signature[0])); - const auto [signatureBytes, signatureMask] = load_signature_128(signature); + alignas(__m128i) const auto [signatureBytes, signatureMask] = load_signature_128(signature); begin = next_boundary_align(begin); if (begin >= end) {