This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/29516] gfortran miscompiled
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Jan 2007 13:33:25 -0000
- Subject: [Bug tree-optimization/29516] gfortran miscompiled
- References: <bug-29516-10259@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #13 from rguenth at gcc dot gnu dot org 2007-01-09 13:33 -------
The problem is definitely the following overflowing mutliplication
which is introduced by ivopts (I'm looking at Tobias dump files):
D.27347_74 = (union tree_node * *) n_30;
D.27348_76 = D.27347_74 * 4294967292B;
src_index_36 = MEM[base: &gfc_rank_cst, index: D.27348_76, offset: 4B];
VRP then (wrongly) asserts
D.27348_76: [0B, 0B] EQUIVALENCES: { } (0 elements)
based on (correct)
D.27347_74: [0B, 4294967295B] EQUIVALENCES: { } (0 elements)
and removes the index from them MEM:
D.27347_74 = (union tree_node * *) n_30;
D.27348_76 = D.27347_74 * 4294967292B;
src_index_36 = MEM[base: &gfc_rank_cst, offset: 4B];
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29516