PR 108846 regression
François Dumont
frs.dumont@gmail.com
Mon Apr 3 19:59:50 GMT 2023
After a full rebuild and run of testsuite based on master I have this
regression:
FAIL: 23_containers/vector/bool/allocator/copy.cc (test for excess errors)
Excess errors:
/home/fdumont/dev/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:437:
warning: 'void* __builtin_memmove(void*, const void*, long unsigned
int)' writing between 9 and 9223372036854775807 bytes into a region of
size 8 overflows the destination [-Wstringop-overflow=]
It comes from the change related to PR 108846, revision
822a11a1e642e0abe92a996e7033a5066905a447
The compiler seems to have enough info to find out that destination
memory area is 8 bytes large but not enough to see that _Num is 1 and so
never going to call the __builtin_memmove. Maybe a compiler bug.
I'm working on a patch to restore previous code when src and dst pointer
types are the same.
But I won't be able to continue my work on it before Wednesday so I
prefer to let you know just in case you would like to fix it before that
and maybe differently.
François
More information about the Libstdc++
mailing list