/* { dg-require-effective-target int32plus } */ | |
/* { dg-options "-fno-strict-overflow" } */ | |
extern void abort (void); | |
extern void exit (int); | |
__attribute__ ((noinline)) void | |
foo(short unsigned int *p1, short unsigned int *p2) | |
{ | |
short unsigned int x1, x4; | |
int x2, x3, x5, x6; | |
unsigned int x7; | |
x1 = *p1; | |
x2 = (int) x1; | |
x3 = x2 * 65536; | |
x4 = *p2; | |
x5 = (int) x4; | |
x6 = x3 + x4; | |
x7 = (unsigned int) x6; | |
if (x7 <= 268435455U) | |
abort (); | |
exit (0); | |
} | |
int | |
main() | |
{ | |
short unsigned int x, y; | |
x = -5; | |
y = -10; | |
foo (&x, &y); | |
} |