tree-optimization/111233 - loop splitting miscompile
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr58143-1.c
blob855515edb97778f245147bf0798083cf98f34c93
1 /* { dg-do run } */
2 /* { dg-additional-options "-fstrict-overflow" } */
4 extern void abort (void);
6 int a, b, c, d, e, f, g, h = 1, i;
8 int foo (int p)
10 return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1;
13 int *bar ()
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;
24 int baz ()
26 for (; b >= 0; b--)
27 for (c = 1; c >= 0; c--)
29 int *k = &c;
30 for (;;)
32 for (f = 0; f < 1; f++)
34 g = foo (*k);
35 bar ();
37 if (*k)
38 break;
39 return 0;
42 return 0;
45 int main ()
47 baz ();
48 if (b != 0)
49 abort ();
50 return 0;