1/* Test for flexible array members.  Test for agreement of offset and
2   structure size.  This is expected to fail, because of a possible
3   defect in the standard.  */
4/* Origin: http://gcc.gnu.org/ml/gcc/2002-05/msg02844.html
5   from Tony Finch <dot@dotat.at>, adapted to a testcase by Joseph Myers
6   <jsm28@cam.ac.uk>.  See also WG14 reflector messages 9571-3.  */
7/* { dg-do compile } */
8/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
9
10#include <stddef.h>
11
12struct foo {
13  int a;
14  short b;
15  char pad[];
16};
17
18struct bar {
19  int a;
20  short b;
21  char pad[1024];
22};
23
24char x[(sizeof(struct foo) == offsetof(struct foo, pad)) ? 1 : -1]; /* { dg-bogus "negative" "sizeof != offsetof" { xfail *-*-* } } */
25char y[(offsetof(struct foo, pad) == offsetof(struct bar, pad)) ? 1 : -1];
26