------- 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