diff options
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 8de1927..6c3455b 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -2138,6 +2138,20 @@ mio_typespec (gfc_typespec *ts) else mio_charlen (&ts->u.cl); + /* So as not to disturb the existing API, use an ATOM_NAME to + transmit deferred characteristic for characters (F2003). */ + if (iomode == IO_OUTPUT) + { + if (ts->type == BT_CHARACTER && ts->deferred) + write_atom (ATOM_NAME, "DEFERRED_CL"); + } + else if (peek_atom () != ATOM_RPAREN) + { + if (parse_atom () != ATOM_NAME) + bad_module ("Expected string"); + ts->deferred = 1; + } + mio_rparen (); } |