aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr89111.c
blob: 3f1d6d95bf56a36b31570663bccc2cdc877b0574 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* { dg-do run } */
/* { dg-require-effective-target int32plus } */

struct __attribute__((packed)) A {  int b : 24; } c[243], f;

int d, e, g, j;

__attribute__((noipa)) int
foo (int x)
{
  if (x != 0)
    __builtin_abort ();
  return 2;
}

int
main ()
{ 
  struct A h = f;
  h.b = 0;
  while (e++ < 3)
    { 
      while (d++ < 3)
	c[46].b ^= 9890739;
      f = c[46] = h;
    }
  while (g++ < 9)
    j = foo (c[g * 9 + j].b);
  return 0;
}