| /* PR target/19005 */ | |
| extern void abort (void); | |
| int v, s; | |
| void | |
| bar (int a, int b) | |
| { | |
| unsigned char x = v; | |
| if (!s) | |
| { | |
| if (a != x || b != (unsigned char) (x + 1)) | |
| abort (); | |
| } | |
| else if (a != (unsigned char) (x + 1) || b != x) | |
| abort (); | |
| s ^= 1; | |
| } | |
| int | |
| foo (int x) | |
| { | |
| unsigned char a = x, b = x + 1; | |
| bar (a, b); | |
| a ^= b; b ^= a; a ^= b; | |
| bar (a, b); | |
| return 0; | |
| } | |
| int | |
| main (void) | |
| { | |
| for (v = -10; v < 266; v++) | |
| foo (v); | |
| return 0; | |
| } |