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