[Bug middle-end/54109] [4.8 Regression] ICE at tree-ssa-structalias.c:3049 in get_constraint_for_component_ref

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jul 31 12:34:00 GMT 2012


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

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-31 12:34:42 UTC ---
Inlining ends up generating

  MEM[(long unsigned int *)&b + 8B].bits[2305843009213693951]{lb: 0 sz: 8} = 0

which is of course bogus, but it's what the code does - referencing
b.mems_allowed.bits[-1].  It's the code that is still present in
tree-ssa-forwprop.c that out of

func2 (struct nodemask_t * p1, int p2)
{
...
  <bb 2>:
  D.1732_2 = &p1_1(D)->bits;
  D.1741_6 = (long unsigned int) p2_4(D);
  D.1740_7 = D.1741_6 * 8;
  D.1739_8 = D.1740_7 + 18446744073709551608;
  D.1738_9 = D.1732_2 + D.1739_8;
  *D.1738_9 = 0;

generates

  D.1741_6 = (long unsigned int) p2_4(D);
  D.1742_11 = D.1741_6 + 2305843009213693951;
  MEM[(long unsigned int *)p1_1(D)].bits[D.1742_11]{lb: 0 sz: 8} = 0;

we need to rip that out.



More information about the Gcc-bugs mailing list