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.