1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
/* { dg-options "-O3" } */ /* { dg-do compile } */ void foo(); struct A { ~A(){ foo(); } }; struct B { A a; }; void bar() { A a; bool b = false; int i, j; for (j=0; j<i; j++) { if (i) b=true; if (j && i) foo(); if (j && i) i++; } for (j=0; j<i; j++) if ( !j || (j==1 && b && i) ) B x; }