> 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);
     }
 

Reply via email to