From 396f5cd72fbd9eb68284940364f0f84d0b2bf553 Mon Sep 17 00:00:00 2001 From: Enrico Seiler Date: Mon, 22 Jul 2024 09:12:54 +0200 Subject: [PATCH] [FIX] gcc-15: Better bogus memcpy fix --- .../matrix/detail/score_matrix_single_column.hpp | 8 ++++++-- .../detail/pairwise_alignment_algorithm_banded.hpp | 7 ------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/include/seqan3/alignment/matrix/detail/score_matrix_single_column.hpp b/include/seqan3/alignment/matrix/detail/score_matrix_single_column.hpp index 0c986c62d2..ba04d761b8 100644 --- a/include/seqan3/alignment/matrix/detail/score_matrix_single_column.hpp +++ b/include/seqan3/alignment/matrix/detail/score_matrix_single_column.hpp @@ -9,6 +9,7 @@ #pragma once +#include #include #include @@ -111,10 +112,13 @@ class score_matrix_single_column score_t const initial_value = score_t{}) { this->number_of_columns = number_of_columns.get(); - optimal_column.clear(); - horizontal_column.clear(); + + std::ranges::fill(optimal_column, initial_value); optimal_column.resize(number_of_rows.get(), initial_value); + + std::ranges::fill(horizontal_column, initial_value); horizontal_column.resize(number_of_rows.get(), initial_value); + vertical_column = views::repeat_n(initial_value, number_of_rows.get()); } diff --git a/include/seqan3/alignment/pairwise/detail/pairwise_alignment_algorithm_banded.hpp b/include/seqan3/alignment/pairwise/detail/pairwise_alignment_algorithm_banded.hpp index 3bcc1edf9c..ac972a067d 100644 --- a/include/seqan3/alignment/pairwise/detail/pairwise_alignment_algorithm_banded.hpp +++ b/include/seqan3/alignment/pairwise/detail/pairwise_alignment_algorithm_banded.hpp @@ -133,15 +133,8 @@ class pairwise_alignment_algorithm_banded : size_t const sequence1_size = std::ranges::distance(simd_seq1_collection); size_t const sequence2_size = std::ranges::distance(simd_seq2_collection); -#if SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wstringop-overflow" -#endif // SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY auto && [alignment_matrix, index_matrix] = this->acquire_matrices(sequence1_size, sequence2_size, this->lowest_viable_score()); -#if SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY -# pragma GCC diagnostic pop -#endif // SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY compute_matrix(simd_seq1_collection, simd_seq2_collection, alignment_matrix, index_matrix);