------- Comment #7 from kargl at gcc dot gnu dot org 2009-09-27 18:18 ------- 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.
2148 /* If an INTENT(OUT) dummy of derived type has a default 2149 initializer, it must be (re)initialized here. */ 2150 if (fsym->attr.intent == INTENT_OUT 2151 && fsym->ts.type == BT_DERIVED 2152 && fsym->value) 2153 { 2154 gcc_assert (!fsym->attr.allocatable); 2155 tmp = gfc_trans_assignment (e, fsym->value, false); 2156 gfc_add_expr_to_block (&se->pre, tmp); 2157 } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41479