[Bug rtl-optimization/49474] [4.7 Regression] ppc ICEs with -O3 (bootstrapping with -O3 and --disable-checking)

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jul 11 22:28:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49474

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.07.11 22:28:28
            Summary|[4.7 Regression] ppc ICEs   |[4.7 Regression] ppc ICEs
                   |with -O3 (bootstrapping     |with -O3 (bootstrapping
                   |with -O3)                   |with -O3 and
                   |                            |--disable-checking)
     Ever Confirmed|0                           |1

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-07-11 22:28:28 UTC ---
reduced testcase:
typedef struct gfc_formal_arglist
{
  int next;
}
gfc_actual_arglist;
update_arglist_pass (gfc_actual_arglist* lst, int po, unsigned argpos,
       const char *name)
{
  ((void)(__builtin_expect(!(argpos > 0), 0) ? __builtin_unreachable(), 0 :
0));
  if (argpos == 1)
      return 0;
  if (lst)
    lst->next = update_arglist_pass (lst->next, po, argpos - 1, name);
  else
    lst = update_arglist_pass (((void *)0), po, argpos - 1, name);
}
--- CUT ---
Simple fix:
Index: cprop.c
===================================================================
--- cprop.c    (revision 176186)
+++ cprop.c    (working copy)
@@ -1332,7 +1332,7 @@ find_implicit_sets (void)
   FOR_EACH_BB (bb)
     {
       /* Check for more than one successor.  */
-      if (! EDGE_COUNT (bb->succs) > 1)
+      if (EDGE_COUNT (bb->succs) <= 1)
     continue;

       cond = fis_get_condition (BB_END (bb));



More information about the Gcc-bugs mailing list