https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087
Bug ID: 107087
Summary: bits/stl_algobase.h:431: warning: 'void*
__builtin_memcpy(void*, const void*, unsigned int)'
reading between 8 and 2147483644 bytes from a region
of size 4 [-Wstringop-overread]
Product: gcc
Version: 12.2.1
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
Target Milestone: ---
Target: i?86-pc-linux-gnu
Created attachment 53640
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53640&action=edit
Gzipped preprocessed output
There are bogus warnings when compiling the attached file using:
g++ -O2 3.ii -m32 -c
/usr/include/c++/12/bits/stl_algobase.h:431:30: warning: ‘void*
__builtin_memcpy(void*, const void*, unsigned int)’ reading between 8 and
2147483644 bytes from a region of size 4 [-Wstringop-overread]
431 | __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_algobase.h:431:30: warning: ‘void*
__builtin_memcpy(void*, const void*, unsigned int)’ reading between 8 and
2147483644 bytes from a region of size 4 [-Wstringop-overread]
431 | __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The warnings are still there on trunk, but -Warray-bounds instead of
-Wstringop-overread.