[Bug middle-end/98266] New: bogus array subscript is partly outside array bounds on virtual inheritance
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Dec 13 23:32:06 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98266
Bug ID: 98266
Summary: bogus array subscript is partly outside array bounds
on virtual inheritance
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
As reported in https://bugzilla.redhat.com/show_bug.cgi?id=1907216, GCC 11
issues a spurious -Warray-bounds on the following code (reduced from the
original test case):
$ cat rhbz1738791.C && g++ -O2 -S -Wall rhbz1738791.C
struct A
{
virtual ~A() noexcept;
const char* s;
};
struct B: virtual A { };
struct C: virtual B { };
struct D: virtual A { };
struct E: virtual B, virtual D
{
E (const char*);
};
void f (E);
void g_function ()
{
f (E (""));
}
rhbz1738791.C: In function ‘void g_function()’:
rhbz1738791.C:11:8: warning: array subscript ‘D[1]’ is partly outside array
bounds of ‘E [1]’ [-Warray-bounds]
11 | struct D: virtual A { };
| ^
rhbz1738791.C:22:11: note: while referencing ‘<anonymous>’
22 | f (E (""));
| ^
rhbz1738791.C:11:8: warning: array subscript ‘D[1]’ is partly outside array
bounds of ‘E [1]’ [-Warray-bounds]
11 | struct D: virtual A { };
| ^
rhbz1738791.C:22:11: note: while referencing ‘<anonymous>’
22 | f (E (""));
| ^
More information about the Gcc-bugs
mailing list