------- Comment #22 from mrs at apple dot com 2007-01-09 23:34 ------- So I'm wondering, does:
Doing diffs in .: --- ./tree-ssa-address.c.~1~ 2006-12-22 21:07:11.000000000 -0800 +++ ./tree-ssa-address.c 2007-01-09 15:30:42.000000000 -0800 @@ -483,7 +483,7 @@ addr_to_parts (aff_tree *addr, tree type { part = fold_convert (type, addr->elts[i].val); if (!double_int_one_p (addr->elts[i].coef)) - part = fold_build2 (MULT_EXPR, type, part, + part = fold_build2 (MULT_EXPR, type, convert (sizetype, part), double_int_to_tree (type, addr->elts[i].coef)); add_to_parts (parts, type, part); } -------------- fix this bug? If so, why is that not the right patch? With it, I get: gfc_conv_array_transpose (se) { long unsigned int D.1696; int * D.1697; int * D.1695; int * D.1694; unsigned int ivtmp.28; int n; struct gfc_ss_info * dest_info; int src_index; int dest_index; int src; int dest; int D.1651; int D.1650; int D.1649; int D.1648; <bb 2>: # n_28 = PHI <n_14(4), 0(2)> <L0>:; D.1694_16 = (int *) dest_info_4(D); D.1695_27 = (int *) n_28; MEM[base: D.1694_16, index: D.1695_27, step: 4B]{dest_info->dim[n]} = n_28; D.1696_2 = (long unsigned int) n_28; D.1697_3 = D.1696_2 * 4294967292B; src_index_6 = MEM[base: &gfc_rank_cst, index: D.1697_3, offset: 4B]{gfc_rank_cst[D.1648]}; D.1649_8 = c (src_7(D), src_index_6); D.1650_11 = b (dest_9(D), dest_index_10(D)); D.1651_13 = se_12(D)->pre; a (D.1651_13, D.1650_11, D.1649_8); n_14 = n_28 + 1; if (n_14 != 2) goto <L5>; else goto <L2>; <L5>:; goto <bb 3> (<L0>); <L2>:; return; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29516