/* { dg-do compile } */ /* { dg-options "-O2 -funswitch-loops -g -fdump-tree-unswitch-details" } */ /* { dg-additional-options "-fcompare-debug" { target { ! powerpc-ibm-aix* } } } */ short a, d; int b, c; static int e() { int f = -2L, g = 9, h = 0; for (; h < 2; h++) if (a <= 5) { g = 0; if (c && a) break; if (c - 1) goto i; } if (b) { int *j[] = {&f}; if (d) for (; f < 9; f++) if (g) for (; f; f++) ; i: while (f) { a--; break; } } } int main() { e(); } /* { dg-final { scan-tree-dump-times "Guard hoisted" 1 "unswitch" } } */