aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr48381.c
blob: eeb9c847f332705ff6fd8b8c88680f5f37ed50ce (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
/* PR rtl-optimization/48381 */

struct S { int s; } t;

int baz (void);
void fn (int, unsigned, int, unsigned, char);

static char
foo (signed x, unsigned y)
{
  return x < 0 || y >= 32 ? 1 : x >> y;
}

long long
bar (long long x, long y)
{
  return y < 0 ? 1LL : x - y;
}

void
test (int x, unsigned y, unsigned z, char w)
{
  unsigned v[2];
  fn (w || baz (), y, t.s, y, foo (bar (z, w) <= v[0], x));
}