1 /* { dg-do run } */ 2 /* { dg-options "-O2" } */ 3 4 extern void abort (void); 5 6 #define VALUE (unsigned int)((int)((long long)U1 * (long long)3) + 2) 7 main(void)8int main(void) 9 { 10 long long Y, Y2; 11 #if(__SIZEOF_INT__ >= 4) 12 int U1; 13 #else 14 long U1; 15 #endif 16 unsigned int t; 17 18 U1 = -2147483647-1; 19 20 Y = ((long long)(int)(VALUE * VALUE) * 3); 21 22 t = VALUE; 23 Y2 = ((long long)(int)(t * t) * 3); 24 25 if (Y != Y2) 26 abort (); 27 return 0; 28 } 29