1/* PR middle-end/29695 */ 2 3extern void abort (void); 4 5int 6f1 (void) 7{ 8 int a = 128; 9 return (a & 0x80) ? 0x80 : 0; 10} 11 12int 13f2 (void) 14{ 15 unsigned char a = 128; 16 return (a & 0x80) ? 0x80 : 0; 17} 18 19int 20f3 (void) 21{ 22 unsigned char a = 128; 23 return (a & 0x80) ? 0x380 : 0; 24} 25 26int 27f4 (void) 28{ 29 unsigned char a = 128; 30 return (a & 0x80) ? -128 : 0; 31} 32 33long long 34f5 (void) 35{ 36 long long a = 0x80000000LL; 37 return (a & 0x80000000) ? 0x80000000LL : 0LL; 38} 39 40long long 41f6 (void) 42{ 43 unsigned int a = 0x80000000; 44 return (a & 0x80000000) ? 0x80000000LL : 0LL; 45} 46 47long long 48f7 (void) 49{ 50 unsigned int a = 0x80000000; 51 return (a & 0x80000000) ? 0x380000000LL : 0LL; 52} 53 54long long 55f8 (void) 56{ 57 unsigned int a = 0x80000000; 58 return (a & 0x80000000) ? -2147483648LL : 0LL; 59} 60 61int 62main (void) 63{ 64 if ((char) 128 != -128 || (int) 0x80000000 != -2147483648) 65 return 0; 66 if (f1 () != 128) 67 abort (); 68 if (f2 () != 128) 69 abort (); 70 if (f3 () != 896) 71 abort (); 72 if (f4 () != -128) 73 abort (); 74 if (f5 () != 0x80000000LL) 75 abort (); 76 if (f6 () != 0x80000000LL) 77 abort (); 78 if (f7 () != 0x380000000LL) 79 abort (); 80 if (f8 () != -2147483648LL) 81 abort (); 82 return 0; 83} 84