1 #if __SIZEOF_INT__ < 4
2   __extension__ typedef __UINT32_TYPE__ uint32_t;
3   __extension__ typedef __INT32_TYPE__ int32_t;
4 #else
5   typedef unsigned uint32_t;
6   typedef int int32_t;
7 #endif
8 
9 extern void abort (void);
10 
f1(int32_t x)11 __attribute__ ((noinline, noclone)) unsigned long long f1 (int32_t x)
12 {
13   return ((unsigned long long) x) << 4;
14 }
15 
f2(uint32_t x)16 __attribute__ ((noinline, noclone)) long long f2 (uint32_t x)
17 {
18   return ((long long) x) << 4;
19 }
20 
f3(uint32_t x)21 __attribute__ ((noinline, noclone)) unsigned long long f3 (uint32_t x)
22 {
23   return ((unsigned long long) x) << 4;
24 }
25 
f4(int32_t x)26 __attribute__ ((noinline, noclone)) long long f4 (int32_t x)
27 {
28   return ((long long) x) << 4;
29 }
30 
main()31 int main ()
32 {
33   if (f1 (0xf0000000) != 0xffffffff00000000)
34     abort ();
35   if (f2 (0xf0000000) != 0xf00000000)
36     abort ();
37   if (f3 (0xf0000000) != 0xf00000000)
38     abort ();
39   if (f4 (0xf0000000) != 0xffffffff00000000)
40     abort ();
41   return 0;
42 }
43