1 /* { dg-require-effective-target int32plus } */ 2 /* { dg-options "-fno-strict-overflow" } */ 3 4 extern void abort (void); 5 extern void exit (int); 6 7 __attribute__ ((noinline)) void foo(short unsigned int * p1,short unsigned int * p2)8foo(short unsigned int *p1, short unsigned int *p2) 9 { 10 short unsigned int x1, x4; 11 int x2, x3, x5, x6; 12 unsigned int x7; 13 14 x1 = *p1; 15 x2 = (int) x1; 16 x3 = x2 * 65536; 17 x4 = *p2; 18 x5 = (int) x4; 19 x6 = x3 + x4; 20 x7 = (unsigned int) x6; 21 if (x7 <= 268435455U) 22 abort (); 23 exit (0); 24 } 25 26 int main()27main() 28 { 29 short unsigned int x, y; 30 x = -5; 31 y = -10; 32 foo (&x, &y); 33 } 34