summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/20010117-2.c
blob: 813468b56b2a9f06f618b1aa0c2bfa24c2154de0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unsigned char a, b;

void baz (void)
{
  if (b & 0x08)
    {
      int g = 0;
      int c = (b & 0x01);
      int d = a - g - c;
      int e = (a & 0x0f) - (g & 0x0f);
      int f = (a & 0xf0) - (g & 0xf0);
      int h = (a & 0x0f) - (g & 0x0f);

      if ((a ^ g) & (a ^ d) & 0x80) b |= 0x40;
      if ((d & 0xff00) == 0) b |= 0x01;
      if (!((a - h - c) & 0xff)) b |= 0x02;
      if ((a - g - c) & 0x80) b |= 0x80;
      a = (e & 0x0f) | (f & 0xf0);
    }
}