[gcc r15-9017] libstdc++: Add testcase for bogus -Wstringop-overflow in std::vector [PR117983]
Jonathan Wakely
redi@gcc.gnu.org
Fri Mar 28 21:59:45 GMT 2025
https://gcc.gnu.org/g:878812b6f6905774ab37cb78903e3e11bf1c508c
commit r15-9017-g878812b6f6905774ab37cb78903e3e11bf1c508c
Author: Jonathan Wakely <jwakely@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());
+ }
+}
More information about the Libstdc++-cvs
mailing list