https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90071

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Matching expression match.pd:1195, generic-match.c:115
Applying pattern match.pd:1251, generic-match.c:17730
Matching expression match.pd:100, generic-match.c:22
Optimizing range tests e_21(ab) +[, 0] and +[-1, ]
 into (unsigned int) e_21(ab) + 1 <= 1

Index: gcc/tree-ssa-reassoc.c
===================================================================
--- gcc/tree-ssa-reassoc.c      (revision 270358)
+++ gcc/tree-ssa-reassoc.c      (working copy)
@@ -2143,7 +2143,8 @@ init_range_entry (struct range_entry *r,
          exp_type = boolean_type_node;
        }

-      if (TREE_CODE (arg0) != SSA_NAME)
+      if (TREE_CODE (arg0) != SSA_NAME
+         || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (arg0))
        break;
       loc = gimple_location (stmt);
       switch (code)

Reply via email to