https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105012
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikael at gcc dot gnu.org --- Comment #21 from Mikael Morin <mikael at gcc dot gnu.org> --- (In reply to anlauf from comment #18) > Tentative patch, regtests cleanly but otherwise untested: > > diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc > index 850007fd2e1..0a1520e95ba 100644 > --- a/gcc/fortran/trans-expr.cc > +++ b/gcc/fortran/trans-expr.cc > @@ -6503,8 +6503,19 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * > sym, > else > { > bool add_clobber; > - add_clobber = fsym && fsym->attr.intent == INTENT_OUT > - && !fsym->attr.allocatable && !fsym->attr.pointer > + gfc_symbol *dsym = fsym; > + gfc_dummy_arg *dummy; > + > + /* Use associated dummy as fallback for formal > + argument if there is no explicit interface. */ > (...) Note that if there is no explicit interface, I expect associated_dummy to be NULL, and as a result dsym and fsym to always actually be the same thing.