| void abort(void); |
| |
| int |
| movegt(int x, int y, long long a) |
| { |
| int i; |
| int ret = 0; |
| for (i = 0; i < y; i++) |
| { |
| if (a >= (long long) 0xf000000000000000LL) |
| ret = x; |
| else |
| ret = y; |
| } |
| return ret; |
| } |
| |
| struct test |
| { |
| long long val; |
| int ret; |
| } tests[] = { |
| { 0xf000000000000000LL, -1 }, |
| { 0xefffffffffffffffLL, 1 }, |
| { 0xf000000000000001LL, -1 }, |
| { 0x0000000000000000LL, -1 }, |
| { 0x8000000000000000LL, 1 }, |
| }; |
| |
| int |
| main() |
| { |
| int i; |
| for (i = 0; i < sizeof (tests) / sizeof (tests[0]); i++) |
| { |
| if (movegt (-1, 1, tests[i].val) != tests[i].ret) |
| abort (); |
| } |
| return 0; |
| } |