1/* PR target/19005 */
2extern void abort (void);
3
4int v, s;
5
6void
7bar (int a, int b)
8{
9  unsigned char x = v;
10
11  if (!s)
12    {
13      if (a != x || b != (unsigned char) (x + 1))
14        abort ();
15    }
16  else if (a != (unsigned char) (x + 1) || b != x)
17    abort ();
18  s ^= 1;
19}
20
21int
22foo (int x)
23{
24  unsigned char a = x, b = x + 1;
25
26  bar (a, b);
27  a ^= b; b ^= a; a ^= b;
28  bar (a, b);
29  return 0;
30}
31
32int
33main (void)
34{
35  for (v = -10; v < 266; v++)
36    foo (v);
37  return 0;
38}
39