This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/48158] [4.7 Regression] profiledbootstrap failure on x86_64-linux


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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-17 14:10:39 UTC ---
The issue is that in one of the chains passed to
convert_control_dep_chain_into_preds contains just one edge, one where a
GIMPLE_CALL has more than one edge and so we skip it.  This means we end up
with some preds vectors containing no use_pred_info pointers at all (empty,
NULL).
The qsort comparison routine unconditionally looks at the first condition and
so it ICEs.

Following patchlet fixes it, but no idea whether it is the right thing to do,
or whether the problem is elsewhere.

--- gcc/tree-ssa-uninit.c.jj    2011-03-16 18:30:12.000000000 +0100
+++ gcc/tree-ssa-uninit.c    2011-03-17 15:07:04.000000000 +0100
@@ -414,6 +414,9 @@ convert_control_dep_chain_into_preds (VE
           VEC_safe_push (use_pred_info_t, heap, (*preds)[i], one_pred);
         }

+      if (VEC_empty (use_pred_info_t, (*preds)[i]))
+    has_valid_pred = false;
+
       if (!has_valid_pred)
         break;
     }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]