1193882Syongari/* Verify that we do not IPA-SRA bitfields.  */
2193882Syongari/* { dg-do run } */
3193882Syongari/* { dg-options "-O2"  } */
4193882Syongari/* { dg-require-effective-target int32plus } */
5193882Syongari
6193882Syongariextern void abort (void);
7193882Syongari
8193882Syongaristruct S
9193882Syongari{
10193882Syongari  int j : 8;
11193882Syongari  int i : 24;
12193882Syongari  int l;
13193882Syongari};
14193882Syongari
15193882Syongaristatic int __attribute__((noinline)) foo (struct S *s)
16193882Syongari{
17193882Syongari  int z = s->i;
18193882Syongari  if (z != 777)
19193882Syongari    abort ();
20193882Syongari  return 0;
21193882Syongari}
22193882Syongari
23193882Syongariint __attribute__((noinline)) bar (struct S *s)
24193882Syongari{
25193882Syongari  return foo (s);
26193882Syongari}
27312360Syongari
28193882Syongariint main (int argc, char *argv[])
29193882Syongari{
30193882Syongari  struct S s;
31193882Syongari  s.j = 5;
32272731Syongari  s.i = 777;
33193882Syongari  s.l = -1;
34193882Syongari
35193882Syongari  return bar (&s);
36193882Syongari}
37193882Syongari