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)

Reply via email to