> This change broke gomp/pr88107.c test:
> FAIL: gcc.dg/gomp/pr88107.c (internal compiler error)
> FAIL: gcc.dg/gomp/pr88107.c (test for excess errors)
> Excess errors:
> during GIMPLE pass: graphite
> /usr/src/gcc/gcc/testsuite/gcc.dg/gomp/pr88107.c:26:1: internal compiler
> error: Segmentation fault 0x11942a4 crash_signal
> ../../gcc/toplev.c:326
> 0x13b5861 gimple_location
> ../../gcc/gimple.h:1805
> 0x13b76f8 create_iv(tree_node*, tree_node*, tree_node*, loop*,
> gimple_stmt_iterator*, bool, tree_node**, tree_node**)
> ../../gcc/tree-ssa-loop-manip.c:142
> 0xaa2c95 create_empty_loop_on_edge(edge_def*, tree_node*, tree_node*,
> tree_node*, tree_node*, tree_node**, tree_node**, loop*)
> ../../gcc/cfgloopmanip.c:831
>
> Apparently gsi_end_p (*incr_pos) is true and after is false, so
> gsi_stmt (*incr_pos) is NULL. One needs graphite enabled.
OK, thanks for the heads up. I have installed the attached fixlet for now.
* tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
--
Eric Botcazou
Index: tree-ssa-loop-manip.c
===================================================================
--- tree-ssa-loop-manip.c (revision 273133)
+++ tree-ssa-loop-manip.c (working copy)
@@ -139,7 +139,8 @@ create_iv (tree base, tree step, tree va
}
else
{
- gimple_set_location (stmt, gimple_location (gsi_stmt (*incr_pos)));
+ if (!gsi_end_p (*incr_pos))
+ gimple_set_location (stmt, gimple_location (gsi_stmt (*incr_pos)));
gsi_insert_before (incr_pos, stmt, GSI_NEW_STMT);
}