summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/pr28403.c
blob: 8f85ea08505c3cd04e6e4d08ec2c58b090fba9b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
typedef unsigned long long ull;
int global;

int __attribute__((noinline))
foo (int x1, int x2, int x3, int x4, int x5, int x6, int x7, int x8)
{
  global = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8;
}

ull __attribute__((noinline))
bar (ull x)
{
  foo (1, 2, 1, 3, 1, 4, 1, 5);
  return x >> global;
}

int
main (void)
{
  if (bar (0x123456789abcdefULL) != (0x123456789abcdefULL >> 18))
    abort ();
  exit (0);
}