blob: 1912a0d9ff744319bf852c6116578cf57d36471a [file] [log] [blame]
/* 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 *-*-* } }
}