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

            Bug ID: 81790
           Summary: [8 Regression] ICE in vn_nary_build_or_lookup_1, at
                    tree-ssa-sccvn.c:1738
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Following ICEs starting from r247092:

$ cat /tmp/ice.i
typedef int a __attribute__ ((__vector_size__ (16)));
typedef struct
{
  a b;
} c;

int d, e;

void foo (c *ptr);

void bar ()
{
  double b = 1842.9028;
  c g, h;
  if (d)
    b = 77.7998;
  for (; e;)
    {
      g.b = g.b = g.b + g.b;
      h.b = (a){b};
      h.b = h.b + h.b;
    }
  foo (&g);
  foo (&h);
}

$ gcc -O1  --param sccvn-max-scc-size=10 /tmp/ice.i
during GIMPLE pass: fre
/tmp/ice.i: In function ‘bar’:
/tmp/ice.i:25:1: internal compiler error: in vn_nary_build_or_lookup_1, at
tree-ssa-sccvn.c:1738
 }
 ^
0xd6d693 vn_nary_build_or_lookup_1
        ../../gcc/tree-ssa-sccvn.c:1738
0xd6fbe7 vn_nary_build_or_lookup
        ../../gcc/tree-ssa-sccvn.c:1774
0xd6fbe7 vn_reference_lookup_3
        ../../gcc/tree-ssa-sccvn.c:2053
0xcb5b9a walk_non_aliased_vuses(ao_ref*, tree_node*, void* (*)(ao_ref*,
tree_node*, unsigned int, void*), void* (*)(ao_ref*, tree_node*, void*, bool*),
tree_node* (*)(tree_node*), void*)
        ../../gcc/tree-ssa-alias.c:2827
0xd6e2a9 vn_reference_lookup(tree_node*, tree_node*, vn_lookup_kind,
vn_reference_s**, bool)
        ../../gcc/tree-ssa-sccvn.c:2466
0xd42cf0 eliminate_dom_walker::before_dom_children(basic_block_def*)
        ../../gcc/tree-ssa-pre.c:4544
0x12d53aa dom_walker::walk(basic_block_def*)
        ../../gcc/domwalk.c:291
0xd41a4b eliminate
        ../../gcc/tree-ssa-pre.c:4832
0xd41b1e execute
        ../../gcc/tree-ssa-pre.c:5277

Reply via email to