/* 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; | |
} |