[Bug bootstrap/77768] [7 Regression] LTO/PGO -O3 bootstrap broken: tree-vrp.c:11053:0: internal compiler error: Segmentation fault
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 28 09:37:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77768
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Interesting. This means vnresult is NULL. I see we can arrive here through
tree
vn_reference_lookup (tree op, tree vuse, vn_lookup_kind kind,
vn_reference_t *vnresult, bool tbaa_p)
{
vec<vn_reference_op_s> operands;
struct vn_reference_s vr1;
tree cst;
bool valuezied_anything;
if (vnresult)
*vnresult = NULL;
vr1.vuse = vuse_ssa_val (vuse);
vr1.operands = operands
= valueize_shared_reference_ops_from_ref (op, &valuezied_anything);
vr1.type = TREE_TYPE (op);
vr1.set = tbaa_p ? get_alias_set (op) : 0;
vr1.hashcode = vn_reference_compute_hash (&vr1);
if ((cst = fully_constant_vn_reference_p (&vr1)))
return cst;
but somehow this means that we have sth like
static const int i[5] = { 1, 2, 3, };
i[1] = 2;
which should prevent the initializer from being constant ... A really odd
case I'd like to see a testcase for (trying to reproduce on x86_64 right now).
A simple "fix" is to guard the code for the vnresult == NULL, erring on
the safe side.
Can you dump me the stmt and maybe also the stored decl (with debug_tree)?
More information about the Gcc-bugs
mailing list