This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/54109] [4.8 Regression] ICE at tree-ssa-structalias.c:3049 in get_constraint_for_component_ref
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 31 Jul 2012 12:34:42 +0000
- Subject: [Bug middle-end/54109] [4.8 Regression] ICE at tree-ssa-structalias.c:3049 in get_constraint_for_component_ref
- Auto-submitted: auto-generated
- References: <bug-54109-4@http.gcc.gnu.org/bugzilla/>
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.