blob: a9b9ff7d2ab25c76d9396943a64c324e9418add5 [file] [log] [blame]
/* Verify warnings fpr accesses to trailing one-element array members
of a struct that's a member of either a struct or a union. Both
are obviously undefined but GCC relies on these hacks so the test
verifies that -Warray-bounds doesn't trigger for it.
{ do-do compile }
{ dg-options "-O2 -Wall" } */
typedef union tree_node *tree;
struct tree_exp { int i; tree operands[1]; };
union tree_node
{
struct tree_exp exp;
};
tree test_nowarn (tree t)
{
return t->exp.operands[3]; // { dg-bogus "\\\[-Warray-bounds" }
}
typedef struct shrub_node *shrub;
struct shrub_exp { int i; shrub operands[1]; };
struct shrub_node
{
struct shrub_exp exp;
};
shrub test_warn (shrub s)
{
return s->exp.operands[3]; // { dg-warning "\\\[-Warray-bounds" "pr96346" { xfail *-*-* } }
}