------- Comment #8 from burnus at gcc dot gnu dot org 2009-10-02 09:54 ------- (In reply to comment #7) > Checking the 4.2 branch and trans-expr.c in trunk, it appears that > this chunk of code in gfc_conv_function_call() has gone missing.
It was removed with the following patch: Date: Tue Jul 24 19:16:36 2007 New Revision: 126885 / 126886 URL: http://gcc.gnu.org/viewcvs?view=revision&revision=126885 http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126886 Log: 2007-07-24 Paul Thomas <pa...@gcc.gnu.org> PR fortran/31205 PR fortran/32842 * trans-expr.c (gfc_conv_function_call): Remove the default initialization of intent(out) derived types. >From http://gcc.gnu.org/ml/gcc-patches/2007-06/msg02151.html: (ii) Remove the initialization of derived types with a default initializer from the caller to the callee. The reasons for doing this are discussed in the PR (PR31205). It has a gratifying effect on passing derived types with allocatable components, in that the amount of generated code goes down (see alloc_comp_basics_1.f90). Thus I think that part is OK. (Doing the default initialization in the caller leads to wrong code if the caller does not know the interface of called procedure.) However, some callee initialization is now missing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41479