1 /* { dg-do run } */ 2 /* { dg-options "-O2 -fwrapv" } */ 3 4 extern void abort (void); 5 6 #define VALUE ((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 int t; 17 U1 = -2147483647-1; 18 19 Y = ((long long)(VALUE * VALUE) * 3); 20 21 t = VALUE; 22 Y2 = ((long long)(t * t) * 3); 23 24 if (Y != Y2) 25 abort (); 26 return 0; 27 } 28