/* PR target/71554 */ | |
int v; | |
__attribute__ ((noinline, noclone)) void | |
bar (void) | |
{ | |
v++; | |
} | |
__attribute__ ((noinline, noclone)) | |
void | |
foo (unsigned int x) | |
{ | |
signed int y = ((-__INT_MAX__ - 1) / 2); | |
signed int r; | |
if (__builtin_mul_overflow (x, y, &r)) | |
bar (); | |
} | |
int | |
main () | |
{ | |
foo (2); | |
if (v) | |
__builtin_abort (); | |
return 0; | |
} |