namelist_use_1.msg

Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>

From-SVN: r101233
This commit is contained in:
Tobias Schlüter 2005-06-21 20:48:20 +00:00 committed by Paul Thomas
parent 2735e93e53
commit 15f9ce2980
2 changed files with 60 additions and 0 deletions

View File

@ -1,3 +1,13 @@
2005-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/22010
Port from g95.
* module.c (mio_namelist): New function. Correct to set
namelist_tail and to give error on renaming namelist by use
association.
(mio_symbol): Call mio_namelist.
2005-06-19 Francois-Xavier Coudert <coudert@clipper.ens.fr>
* gfortran.h: Add flag_backslash compile-time option.

View File

@ -2564,6 +2564,55 @@ mio_expr (gfc_expr ** ep)
}
/* Read and write namelists */
static void
mio_namelist (gfc_symbol * sym)
{
gfc_namelist *n, *m;
const char *check_name;
mio_lparen ();
if (iomode == IO_OUTPUT)
{
for (n = sym->namelist; n; n = n->next)
mio_symbol_ref (&n->sym);
}
else
{
/* This departure from the standard is flagged as an error.
It does, in fact, work correctly. TODO: Allow it
conditionally? */
if (sym->attr.flavor == FL_NAMELIST)
{
check_name = find_use_name (sym->name);
if (check_name && strcmp (check_name, sym->name) != 0)
gfc_error("Namelist %s cannot be renamed by USE"
" association to %s.",
sym->name, check_name);
}
m = NULL;
while (peek_atom () != ATOM_RPAREN)
{
n = gfc_get_namelist ();
mio_symbol_ref (&n->sym);
if (sym->namelist == NULL)
sym->namelist = n;
else
m->next = n;
m = n;
}
sym->namelist_tail = m;
}
mio_rparen ();
}
/* Save/restore lists of gfc_interface stuctures. When loading an
interface, we are really appending to the existing list of
interfaces. Checking for duplicate and ambiguous interfaces has to
@ -2724,6 +2773,7 @@ mio_symbol (gfc_symbol * sym)
sym->component_access =
MIO_NAME(gfc_access) (sym->component_access, access_types);
mio_namelist (sym);
mio_rparen ();
}