/* { dg-do run } */ | |
/* { dg-additional-options "-fstrict-overflow" } */ | |
extern void abort (void); | |
int a, b, c, d, e, f, g, h = 1, i; | |
int foo (int p) | |
{ | |
return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1; | |
} | |
int *bar () | |
{ | |
int j; | |
i = h ? 0 : 1 % h; | |
for (j = 0; j < 1; j++) | |
for (d = 0; d; d++) | |
for (e = 1; e;) | |
return 0; | |
return 0; | |
} | |
int baz () | |
{ | |
for (; b >= 0; b--) | |
for (c = 1; c >= 0; c--) | |
{ | |
int *k = &c; | |
for (;;) | |
{ | |
for (f = 0; f < 1; f++) | |
{ | |
g = foo (*k); | |
bar (); | |
} | |
if (*k) | |
break; | |
return 0; | |
} | |
} | |
return 0; | |
} | |
int main () | |
{ | |
baz (); | |
if (b != 0) | |
abort (); | |
return 0; | |
} |