1 extern void abort (void); 2 f1(int x)3__attribute__ ((noinline, noclone)) unsigned long long f1 (int x) 4 { 5 return ((unsigned long long) x) << 4; 6 } 7 f2(unsigned x)8__attribute__ ((noinline, noclone)) long long f2 (unsigned x) 9 { 10 return ((long long) x) << 4; 11 } 12 f3(unsigned x)13__attribute__ ((noinline, noclone)) unsigned long long f3 (unsigned x) 14 { 15 return ((unsigned long long) x) << 4; 16 } 17 f4(int x)18__attribute__ ((noinline, noclone)) long long f4 (int x) 19 { 20 return ((long long) x) << 4; 21 } 22 main()23int main () 24 { 25 if (f1 (0xf0000000) != 0xffffffff00000000) 26 abort (); 27 if (f2 (0xf0000000) != 0xf00000000) 28 abort (); 29 if (f3 (0xf0000000) != 0xf00000000) 30 abort (); 31 if (f4 (0xf0000000) != 0xffffffff00000000) 32 abort (); 33 return 0; 34 } 35