------- Comment #5 from burnus at gcc dot gnu dot org 2009-11-02 18:07 ------- The problem is that gfortran copies for some reason the array descriptor in "one()" before calling "two()". The question is only why? One should be able to simply pass the array on, shouldn't one? The dump shows:
parm.12.data = (void *) &(*a.0)[0]; two (&parm.12); Thus the check whether the argument is there succeeds in "two". I will have a look later how to solve it. * * * Note: The problematic part of the patch is the second block in the diff at http://gcc.gnu.org/ml/fortran/2009-10/msg00246.html (Thus 4.4 is not affected.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41907