https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91470
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs-reduction | Status|UNCONFIRMED |NEW Last reconfirmed| |2019-08-27 CC| |marxin at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- There's a reduced test-case: $ cat pr91470.ii int input_location, global_trees_0, gfc_conv_intrinsic_findloc_body, gfc_conv_intrinsic_findloc_loopblock, gfc_conv_intrinsic_findloc_tmp, gfc_conv_intrinsic_findloc_found, gfc_conv_intrinsic_findloc_loop; enum tree_code { COND_EXPR }; struct A {}; struct B { int pre; int expr; }; void fn1(B *, B *); void fn2(int *, int *); int *fn3(int *); void fn4(int, tree_code, int *, int *, int *, int); void fn5(B *, int *); void fn6() { A array_arg, value_arg, dim_arg, mask_arg, kind_arg, back_arg; int *forward_branch; B arrayse, valuese, maskse, backse; int i; value_arg = array_arg; mask_arg = dim_arg; back_arg = kind_arg; for (i = 0; i < 2; i++) { fn5(&maskse, &gfc_conv_intrinsic_findloc_loop); fn1(&arrayse, __null); fn2(&gfc_conv_intrinsic_findloc_body, &valuese.pre); fn4(input_location, COND_EXPR, &global_trees_0, &gfc_conv_intrinsic_findloc_tmp, &gfc_conv_intrinsic_findloc_found, 0); if (i == 0) forward_branch = fn3(&gfc_conv_intrinsic_findloc_loopblock); } fn4(input_location, COND_EXPR, &global_trees_0, &backse.expr, forward_branch, 0); }