https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101854
Bug ID: 101854
Summary: Invalid warning -Wstringop-overflow wrong argument
Product: gcc
Version: 11.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: nightstrike at gmail dot com
Target Milestone: ---
void f() {
struct Weird {
float a; // Comment out any member
float b; // to silence the warning
float c;
float d;
float e;
};
struct Weird g(float const Q[2], float const null[6][8]) {
return (struct Weird){0};
}
float const q[2];
struct Weird ss = g(q, (void *)0);
}
$ gcc -c a.c
a.c: In function 'f':
a.c:14:27: warning: 'g' accessing 192 bytes in a region of size 8
[-Wstringop-overflow=]
14 | struct Weird ss = g(q, (void *)0);
| ^~~~~~~~~~~~~~~
a.c:14:27: note: referencing argument 2 of type 'const float (*)[8]'
a.c:9:22: note: in a call to function 'g'
9 | struct Weird g(float const Q[2], float const null[6][8]) {
| ^
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/tmp/bin/../libexec/gcc/x86_64-pc-linux-gnu/11.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../src/gcc-11.2.0/configure --disable-nls --disable-multilib
--enable-languages=all --prefix=/tmp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.2.0 (GCC)