This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/45991] [4.6 Regression] ICE: verify_stmts failed: Invalid address operand in in TARGET_MEM_REF. with -fstrict-overflow
- 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: Thu, 4 Nov 2010 12:29:25 +0000
- Subject: [Bug tree-optimization/45991] [4.6 Regression] ICE: verify_stmts failed: Invalid address operand in in TARGET_MEM_REF. with -fstrict-overflow
- Auto-submitted: auto-generated
- References: <bug-45991-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45991
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-04 12:29:20 UTC ---
The problem is that fold figures sth out that tree-affine doesn't. The
latter doesn't simplify
{
type = long unsigned int
offset = 0
elements = {
[0] = &A[(long unsigned int) (long unsigned int) ((i_3(D) + -1) * 16) + 20]
* 1,
[1] = (long unsigned int) ((i_3(D) + -1) * 16) *
340282366920938463463374607431768211455,
[2] = ivtmp.9_20 * 1
}
}
to just &A[20] + ivtmp.9_20.
Now we can avoid the ICE by gimplifying the address properly which we don't
because of a typo I made in an earlier change.