annotate gcc/testsuite/gcc.dg/pr41935.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR middle-end/41935 */
kono
parents:
diff changeset
2 /* { dg-do run } */
kono
parents:
diff changeset
3 /* { dg-options "-O2" } */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 extern void abort (void);
kono
parents:
diff changeset
6 struct A { int a; int b[10]; };
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 int
kono
parents:
diff changeset
9 foo (struct A *p)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 return __builtin_offsetof (struct A, b[p->a]);
kono
parents:
diff changeset
12 }
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 int
kono
parents:
diff changeset
15 main ()
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 struct A a;
kono
parents:
diff changeset
18 a.a = 7;
kono
parents:
diff changeset
19 if (foo (&a) != 7 * sizeof (int) + __builtin_offsetof (struct A, b))
kono
parents:
diff changeset
20 abort ();
kono
parents:
diff changeset
21 a.a = 2;
kono
parents:
diff changeset
22 if (foo (&a) != 2 * sizeof (int) + __builtin_offsetof (struct A, b))
kono
parents:
diff changeset
23 abort ();
kono
parents:
diff changeset
24 return 0;
kono
parents:
diff changeset
25 }