------- Comment #5 from burnus at gcc dot gnu dot org 2010-01-14 11:10 ------- The crucial difference between 142153 and 142154 seems to be that the former uses table->realdata.data directly, while the latter creates a "atmp" descriptor, which does not fill .dim[1].stride:
table->realdata.dim[0].stride = 1; table->realdata.dim[1].stride = 1; and then: D.947 = NON_LVALUE_EXPR <table->realdata.dim[1].stride> + D.936; vs. atmp.1.dim[0].stride = 1; /* but not setting atmp.1.dim[1].{stride,lbound,ubound} */ D.959 = NON_LVALUE_EXPR <atmp.1.dim[1].stride> + D.957; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42736