1 int foo1(value)2foo1 (value) 3 long long value; 4 { 5 register const long long constant = 0xc000000080000000LL; 6 7 if (value < constant) 8 return 1; 9 else 10 return 2; 11 } 12 13 int foo2(value)14foo2 (value) 15 unsigned long long value; 16 { 17 register const unsigned long long constant = 0xc000000080000000LL; 18 19 if (value < constant) 20 return 1; 21 else 22 return 2; 23 } 24 main()25main () 26 { 27 unsigned long long value = 0xc000000000000001LL; 28 int x, y; 29 30 x = foo1 (value); 31 y = foo2 (value); 32 if (x != y || x != 1) 33 abort (); 34 exit (0); 35 } 36