diff options
author | Janus Weil <janus@gcc.gnu.org> | 2018-02-15 22:16:00 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2018-02-15 22:16:00 +0100 |
commit | f3ad8745b0559b3abc4253dbc3a659295b142379 (patch) | |
tree | 0045b7dc9a42f86c8ce13179f571cc71a04c5754 /gcc/fortran/interface.c | |
parent | 51f174c0efe187d46102bf8010d6096cada1a0cb (diff) | |
download | gcc-f3ad8745b0559b3abc4253dbc3a659295b142379.zip gcc-f3ad8745b0559b3abc4253dbc3a659295b142379.tar.gz gcc-f3ad8745b0559b3abc4253dbc3a659295b142379.tar.bz2 |
re PR fortran/84409 ([F03] check DTIO arguments for character len)
2018-02-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/84409
* interface.c (check_dtio_arg_TKR_intent): Add a check for character
length.
2018-02-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/84409
* gfortran.dg/dtio_21.f03: Add an error message.
* gfortran.dg/dtio_22.f90: Fix invalid test case.
From-SVN: r257711
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r-- | gcc/fortran/interface.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index a5f3f4d..ad02928 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -4673,7 +4673,7 @@ gfc_check_typebound_override (gfc_symtree* proc, gfc_symtree* old) /* 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 typebound, bt type, 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)); |