OSDN Git Service

* gcc.gd/struct/wo_prof_global_var.c: Use uninitialized integer
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr25682.c
1 /* PR c/25682 */
2 /* { dg-do compile } */
3 /* { dg-options "-ansi" } */
4 /* Test whether we don't ICE on questionable constructs where offsetof
5    should have been used instead.  */
6
7 struct S
8 {
9   char a[4];
10   int b;
11 };
12
13 char c[(char *) &((struct S *) 0)->b - (char *) 0];
14 char d[(__SIZE_TYPE__) &((struct S *) 8)->b];
15 char e[sizeof (c) == __builtin_offsetof (struct S, b) ? 1 : -1];
16 char f[sizeof (d) == __builtin_offsetof (struct S, b) + 8 ? 1 : -1];
17
18 extern void bar (char *, char *);
19
20 void
21 foo (void)
22 {
23   char g[(char *) &((struct S *) 0)->b - (char *) 0];
24   char h[(__SIZE_TYPE__) &((struct S *) 8)->b];
25   char i[sizeof (g) == __builtin_offsetof (struct S, b) ? 1 : -1];
26   char j[sizeof (h) == __builtin_offsetof (struct S, b) + 8 ? 1 : -1];
27   bar (g, h);
28 }