aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/i386/pr58418.c
blob: 27634c9c2f76c2afecc6daa2f8be1fe6899cd085 (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
31
32
/* { dg-do run } */
/* { dg-options "-O2" } */

extern void abort (void);
int a, b, *c = &b, d = -1, e, f, *g, *h = &f, **i = &g, j;

unsigned int
foo (unsigned int p)
{
  return p == 0 ? 0 : 1 / p;
}

static int *
bar ()
{
  *c = *h = foo (d) & (-9 < d);
  for (e = 0; e; e++)
    ;
  return 0;
}

int
main ()
{
  for (; j; j++)
    for (;; a--)
      ;
  *i = bar ();
  if (f != 0)
    abort ();
  return 0;
}