/* 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 *-*-* } } }