1 /* { dg-do run } */ 2 /* { dg-additional-options "-fstrict-overflow" } */ 3 4 extern void abort (void); 5 6 int a, b, c, d, e, f, g, h = 1, i; 7 foo(int p)8int foo (int p) 9 { 10 return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1; 11 } 12 bar()13int *bar () 14 { 15 int j; 16 i = h ? 0 : 1 % h; 17 for (j = 0; j < 1; j++) 18 for (d = 0; d; d++) 19 for (e = 1; e;) 20 return 0; 21 return 0; 22 } 23 baz()24int baz () 25 { 26 for (; b >= 0; b--) 27 for (c = 1; c >= 0; c--) 28 { 29 int *k = &c; 30 for (;;) 31 { 32 for (f = 0; f < 1; f++) 33 { 34 g = foo (*k); 35 bar (); 36 } 37 if (*k) 38 break; 39 return 0; 40 } 41 } 42 return 0; 43 } 44 main()45int main () 46 { 47 baz (); 48 if (b != 0) 49 abort (); 50 return 0; 51 } 52