2 /* { dg-do compile } */
3 /* Test whether we don't ICE on questionable constructs where offsetof
4 should have been used instead. */
12 char c
[(char *) &((struct S
*) 0)->b
- (char *) 0];
13 char d
[(__SIZE_TYPE__
) &((struct S
*) 8)->b
];
14 char e
[sizeof (c
) == __builtin_offsetof (struct S
, b
) ? 1 : -1];
15 char f
[sizeof (d
) == __builtin_offsetof (struct S
, b
) + 8 ? 1 : -1];
17 extern void bar (char *, char *);
22 char g
[(char *) &((struct S
*) 0)->b
- (char *) 0];
23 char h
[(__SIZE_TYPE__
) &((struct S
*) 8)->b
];
24 char i
[sizeof (g
) == __builtin_offsetof (struct S
, b
) ? 1 : -1];
25 char j
[sizeof (h
) == __builtin_offsetof (struct S
, b
) + 8 ? 1 : -1];