summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr105198.c
blob: 91f92afc163c9b690e87b3c2d5e24a04345430a2 (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
/* { dg-do run } */
/* { dg-additional-options "-fno-tree-pre -fpredictive-commoning" } */

static  __attribute__ ((noipa)) void
next_set(int *x, int n, int k)
{
  int j = k - 1;
  int tmp = x[j]++;
  while (j > 0)
    {
      if (x[j] < n - (k - 1 -j))
        break;
      j--;
      x[j]++;
      tmp = x[j];
    }
  if (tmp != 2 || j != 1 || x[0] != 0 || x[1] != 2 || x[2] != 5)
    __builtin_abort ();
}

int main()
{
  int x[3] = {0, 1, 4};
  next_set(x, 5, 3);
  return 0;
}