[gcc r13-9485] libstdc++: Avoid bogus -Walloc-size-larger-than warning in test [PR116212]
Jonathan Wakely
redi@gcc.gnu.org
Wed Apr 2 17:14:15 GMT 2025
https://gcc.gnu.org/g:30a0a942007ac01601c6493b558b747d6a5b6371
commit r13-9485-g30a0a942007ac01601c6493b558b747d6a5b6371
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Tue Apr 1 11:02:43 2025 +0100
libstdc++: Avoid bogus -Walloc-size-larger-than warning in test [PR116212]
The compiler can't tell that the vector size fits in int, so it thinks
it might overflow to a negative value, which would then be a huge
positive size_t. In reality, the vector size never exceeds five.
There's no warning on trunk, so just change the local variable to use
type unsigned so that we get rid of the warning on the branches.
libstdc++-v3/ChangeLog:
PR libstdc++/116212
* testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
Use unsigned for vector size.
Diff:
---
.../20_util/specialized_algorithms/uninitialized_move/constrained.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
index 23dcefdd3dfa..a4343ae8f5bb 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
@@ -51,7 +51,7 @@ test01(std::vector<T> ix)
{
ix = saved_ix;
- int size = ix.size();
+ unsigned size = ix.size();
auto buffer = std::unique_ptr<char[]>(new char[sizeof(T)*size]);
std::span<T> rx((T *)buffer.get(), size);
More information about the Libstdc++-cvs
mailing list