PR c++/88565 - enhance -Warray-bounds for C++ trailing class member arrays
gcc/testsuite/ChangeLog: * g++.dg/warn/Warray-bounds-9.C: New test. From-SVN: r277758
This commit is contained in:
parent
ac6f2e5948
commit
4bcd578ab4
2 changed files with 86 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2019-11-03 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR c++/88565
|
||||
* g++.dg/warn/Warray-bounds-9.C: New test.
|
||||
|
||||
2019-11-02 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* g++.dg/conversion/ptrmem9.C: Check location.
|
||||
|
|
81
gcc/testsuite/g++.dg/warn/Warray-bounds-9.C
Normal file
81
gcc/testsuite/g++.dg/warn/Warray-bounds-9.C
Normal file
|
@ -0,0 +1,81 @@
|
|||
/* PR c++/88565 - enhance -Warray-bounds for C++ trailing class member arrays
|
||||
{ dg-do compile }
|
||||
{ dg-options "-O2 -Wall" } */
|
||||
|
||||
struct S0
|
||||
{
|
||||
S0 ();
|
||||
|
||||
int f ();
|
||||
|
||||
int a[0];
|
||||
};
|
||||
|
||||
int S0::f ()
|
||||
{
|
||||
// The following is not diagnosed but should be in a class with a ctor.
|
||||
return a[0]; // { dg-warning "\\\[-Warray-bounds" "pr88565" { xfail *-*-* } }
|
||||
}
|
||||
|
||||
|
||||
struct S1
|
||||
{
|
||||
S1 ();
|
||||
|
||||
int f ();
|
||||
|
||||
int a[1];
|
||||
};
|
||||
|
||||
int S1::f ()
|
||||
{
|
||||
// The following is only diagnosed with -Warray-bounds=2 but should
|
||||
// be even at level 1 in a call with a ctor.
|
||||
return a[1]; // { dg-warning "\\\[-Warray-bounds" "pr88565" { xfail *-*-* } }
|
||||
}
|
||||
|
||||
|
||||
struct S2
|
||||
{
|
||||
S2 ();
|
||||
|
||||
int f ();
|
||||
|
||||
int a[2];
|
||||
};
|
||||
|
||||
int S2::f ()
|
||||
{
|
||||
return a[2]; // { dg-warning "\\\[-Warray-bounds" }
|
||||
}
|
||||
|
||||
|
||||
struct S3
|
||||
{
|
||||
S3 ();
|
||||
|
||||
int f ();
|
||||
|
||||
int a[3];
|
||||
};
|
||||
|
||||
int S3::f ()
|
||||
{
|
||||
return a[3]; // { dg-warning "\\\[-Warray-bounds" }
|
||||
}
|
||||
|
||||
|
||||
struct Sx
|
||||
{
|
||||
Sx ();
|
||||
|
||||
int f ();
|
||||
|
||||
int n, a[];
|
||||
};
|
||||
|
||||
int Sx::f ()
|
||||
{
|
||||
// The following is not diagnosed but should be in a class with a ctor.
|
||||
return a[0]; // { dg-warning "\\\[-Warray-bounds" "pr88565" { xfail *-*-* } }
|
||||
}
|
Loading…
Add table
Reference in a new issue