[Bug sanitizer/90090] [7/8/9 Regression] ICE in mark_reachable_handlers, at tree-eh.c:3938 since r219202
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Apr 15 07:43:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90090
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
--- gcc/tree-ssa-math-opts.c.jj 2019-04-08 10:11:28.620219138 +0200
+++ gcc/tree-ssa-math-opts.c 2019-04-15 09:42:22.173868303 +0200
@@ -334,7 +334,8 @@ is_division_by (gimple *use_stmt, tree d
/* Do not recognize x / x as valid division, as we are getting
confused later by replacing all immediate uses x in such
a stmt. */
- && gimple_assign_rhs1 (use_stmt) != def;
+ && gimple_assign_rhs1 (use_stmt) != def
+ && !stmt_can_throw_internal (cfun, use_stmt);
}
/* Return TRUE if USE_STMT is a multiplication of DEF by A. */
@@ -367,13 +368,12 @@ is_division_by_square (gimple *use_stmt,
{
if (gimple_code (use_stmt) == GIMPLE_ASSIGN
&& gimple_assign_rhs_code (use_stmt) == RDIV_EXPR
- && gimple_assign_rhs1 (use_stmt) != gimple_assign_rhs2 (use_stmt))
+ && gimple_assign_rhs1 (use_stmt) != gimple_assign_rhs2 (use_stmt)
+ && !stmt_can_throw_internal (cfun, use_stmt))
{
tree denominator = gimple_assign_rhs2 (use_stmt);
if (TREE_CODE (denominator) == SSA_NAME)
- {
- return is_square_of (SSA_NAME_DEF_STMT (denominator), def);
- }
+ return is_square_of (SSA_NAME_DEF_STMT (denominator), def);
}
return 0;
}
fixes this.
More information about the Gcc-bugs
mailing list