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)8 int 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