This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/48158] [4.7 Regression] profiledbootstrap failure on x86_64-linux
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 Mar 2011 14:10:45 +0000
- Subject: [Bug bootstrap/48158] [4.7 Regression] profiledbootstrap failure on x86_64-linux
- Auto-submitted: auto-generated
- References: <bug-48158-4@http.gcc.gnu.org/bugzilla/>
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;
}