From 40570911bccf451d6fc76426d912c7153bfb7587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sun, 29 Mar 2026 15:24:41 +0200 Subject: [PATCH] Avoid aliasing in merge scan --- include/boost/container/experimental/segmented_merge.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/boost/container/experimental/segmented_merge.hpp b/include/boost/container/experimental/segmented_merge.hpp index cd2ec61..2d4c499 100644 --- a/include/boost/container/experimental/segmented_merge.hpp +++ b/include/boost/container/experimental/segmented_merge.hpp @@ -43,9 +43,10 @@ struct merge_default_less }; template -OutIter merge_scan(FwdIt first, Sent last, InIter2& first2, Sent2 last2, OutIter result, Comp comp, +OutIter merge_scan(FwdIt first, Sent last, InIter2& first2_out, Sent2 last2, OutIter result, Comp comp, non_segmented_iterator_tag) { + InIter2 first2 = first2_out; while(first != last && first2 != last2) { if(comp(*first2, *first)) { *result = *first2; @@ -57,6 +58,7 @@ OutIter merge_scan(FwdIt first, Sent last, InIter2& first2, Sent2 last2, OutIter } ++result; } + first2_out = first2; return (segmented_copy)(first, last, result); }