https://gcc.gnu.org/g:878812b6f6905774ab37cb78903e3e11bf1c508c
commit r15-9017-g878812b6f6905774ab37cb78903e3e11bf1c508c Author: Jonathan Wakely <jwak...@redhat.com> Date: Fri Mar 28 21:46:46 2025 +0000 libstdc++: Add testcase for bogus -Wstringop-overflow in std::vector [PR117983] This was fixed on trunk by r15-4473-g3abe751ea86e34, just add the testcase. libstdc++-v3/ChangeLog: PR libstdc++/117983 * testsuite/23_containers/vector/modifiers/insert/117983.cc: New test. Diff: --- .../23_containers/vector/modifiers/insert/117983.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/117983.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/117983.cc new file mode 100644 index 000000000000..e6027a677eed --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/117983.cc @@ -0,0 +1,17 @@ +// { dg-options "-O3 -Werror=stringop-overflow" } +// { dg-do compile } + +// PR libstdc++/117983 +// -Wstringop-overflow false positive for __builtin_memmove from vector::insert + +#include <vector> + +typedef std::vector<unsigned char> bytes; + +void push(bytes chunk, bytes& data) { + if (data.empty()) { + data.swap(chunk); + } else { + data.insert(data.end(), chunk.begin(), chunk.end()); + } +}