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