re PR tree-optimization/58978 (ICE: Segmentation fault)
PR tree-optimization/58978 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify use_stmt by single_imm_use directly. Only call single_imm_use on SSA_NAMEs. * gcc.c-torture/compile/pr58978.c: New test. From-SVN: r204357
This commit is contained in:
parent
4ca469cf46
commit
7e8c8abc99
|
@ -1,3 +1,10 @@
|
||||||
|
2013-11-04 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/58978
|
||||||
|
* tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify
|
||||||
|
use_stmt by single_imm_use directly. Only call single_imm_use
|
||||||
|
on SSA_NAMEs.
|
||||||
|
|
||||||
2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
|
2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
PR rtl-optimization/58968
|
PR rtl-optimization/58968
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-11-04 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/58978
|
||||||
|
* gcc.c-torture/compile/pr58978.c: New test.
|
||||||
|
|
||||||
2013-11-04 Paul Thomas <pault@gcc.gnu.org>
|
2013-11-04 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/57445
|
PR fortran/57445
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
/* PR tree-optimization/58978 */
|
||||||
|
|
||||||
|
int
|
||||||
|
foo (int x)
|
||||||
|
{
|
||||||
|
switch (x)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 9:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
__builtin_unreachable ();
|
||||||
|
}
|
||||||
|
return x;
|
||||||
|
}
|
|
@ -6472,13 +6472,14 @@ all_imm_uses_in_stmt_or_feed_cond (tree var, gimple stmt, basic_block cond_bb)
|
||||||
FOR_EACH_IMM_USE_FAST (use_p, iter, var)
|
FOR_EACH_IMM_USE_FAST (use_p, iter, var)
|
||||||
if (USE_STMT (use_p) != stmt)
|
if (USE_STMT (use_p) != stmt)
|
||||||
{
|
{
|
||||||
gimple use_stmt = USE_STMT (use_p);
|
gimple use_stmt = USE_STMT (use_p), use_stmt2;
|
||||||
if (is_gimple_debug (use_stmt))
|
if (is_gimple_debug (use_stmt))
|
||||||
continue;
|
continue;
|
||||||
while (is_gimple_assign (use_stmt)
|
while (is_gimple_assign (use_stmt)
|
||||||
|
&& TREE_CODE (gimple_assign_lhs (use_stmt)) == SSA_NAME
|
||||||
&& single_imm_use (gimple_assign_lhs (use_stmt),
|
&& single_imm_use (gimple_assign_lhs (use_stmt),
|
||||||
&use2_p, &use_stmt))
|
&use2_p, &use_stmt2))
|
||||||
;
|
use_stmt = use_stmt2;
|
||||||
if (gimple_code (use_stmt) != GIMPLE_COND
|
if (gimple_code (use_stmt) != GIMPLE_COND
|
||||||
|| gimple_bb (use_stmt) != cond_bb)
|
|| gimple_bb (use_stmt) != cond_bb)
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue