http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60392
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-03-05 CC| |mikael at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Mikael Morin <mikael at gcc dot gnu.org> --- for both calls (my_mul and my_mul_cont) we create a descriptor for a (with transposed bounds as expected) and make a call to internal_pack. After that the calls start to differ. The pointer returned by internal_pack is passed directly to my_mul. In the case of my_mul_cont, we have to create a descriptor around the pointer to pass as argument, and we reuse the one passed to internal_pack, but that one has the bounds transposed! So we pass the transposed array with transposed bounds -> we pass the original array.