2018-02-15 21:16 GMT+01:00 Steve Kargl <s...@troutmask.apl.washington.edu>: > On Thu, Feb 15, 2018 at 09:03:55PM +0100, Janus Weil wrote: >> >> Regtests cleanly on x86_64-linux-gnu. Ok for trunk? >> > > Looks good to me with a question below.
Thanks for the feedback, Steve. >> Index: gcc/fortran/interface.c >> =================================================================== >> --- gcc/fortran/interface.c (revision 257672) >> +++ gcc/fortran/interface.c (working copy) >> @@ -4702,6 +4702,10 @@ check_dtio_arg_TKR_intent (gfc_symbol *fsym, bool >> gfc_error ("DTIO dummy argument at %L must be an " >> "ASSUMED SHAPE ARRAY", &fsym->declared_at); >> >> + if (type == BT_CHARACTER && fsym->ts.u.cl->length != NULL) >> + gfc_error ("DTIO character argument at %L must have assumed length", >> + &fsym->declared_at); >> + > > If the above is a numbered constraint in the Standard, > can you add a comment of the form /* F03:C1111. */ > above the if-statement. Well, the if statement that I'm adding is not covered by a single clause in the standard. Instead the DTIO interfaces are described as a whole in a chapter, whose number I'm now adding in the comment above the function: Index: gcc/fortran/interface.c =================================================================== --- gcc/fortran/interface.c (revision 257672) +++ gcc/fortran/interface.c (working copy) @@ -4673,7 +4673,7 @@ gfc_check_typebound_override (gfc_symtree* proc, g /* The following three functions check that the formal arguments of user defined derived type IO procedures are compliant with - the requirements of the standard. */ + the requirements of the standard, see F03:9.5.3.7.2 (F08:9.6.4.8.3). */ static void check_dtio_arg_TKR_intent (gfc_symbol *fsym, bool typebound, bt type, @@ -4702,6 +4702,10 @@ check_dtio_arg_TKR_intent (gfc_symbol *fsym, bool gfc_error ("DTIO dummy argument at %L must be an " "ASSUMED SHAPE ARRAY", &fsym->declared_at); + if (type == BT_CHARACTER && fsym->ts.u.cl->length != NULL) + gfc_error ("DTIO character argument at %L must have assumed length", + &fsym->declared_at); + if (fsym->attr.intent != intent) gfc_error ("DTIO dummy argument at %L must have INTENT %s", &fsym->declared_at, gfc_code2string (intents, (int)intent)); Will commit this shortly. Cheers, Janus 2018-02-15 21:16 GMT+01:00 Steve Kargl <s...@troutmask.apl.washington.edu>: > On Thu, Feb 15, 2018 at 09:03:55PM +0100, Janus Weil wrote: >> >> Regtests cleanly on x86_64-linux-gnu. Ok for trunk? >> > > Looks good to me with a question below. > >> Index: gcc/fortran/interface.c >> =================================================================== >> --- gcc/fortran/interface.c (revision 257672) >> +++ gcc/fortran/interface.c (working copy) >> @@ -4702,6 +4702,10 @@ check_dtio_arg_TKR_intent (gfc_symbol *fsym, bool >> gfc_error ("DTIO dummy argument at %L must be an " >> "ASSUMED SHAPE ARRAY", &fsym->declared_at); >> >> + if (type == BT_CHARACTER && fsym->ts.u.cl->length != NULL) >> + gfc_error ("DTIO character argument at %L must have assumed length", >> + &fsym->declared_at); >> + > > If the above is a numbered constraint in the Standard, > can you add a comment of the form /* F03:C1111. */ > above the if-statement. > > -- > Steve