Commit 62f1d470 by Tobias Schlüter

re PR fortran/13372 (ICE in trans-types.c (gfc_typenode_for_spec), see #13201)

fortran/
PR fortran/13372
* module.c (write_symbol, write_symtree): Don't write symbols
wrongly added to namespace.
* trans-decl.c (gfc_create_module_variable): Don't create a
backend decl for a symbol incorrectly added to namespace.

testsuite/
PR fortran/13372
* gfortran.fortran-torture/compile/named_args_2.f90: New test.

From-SVN: r82834
parent b40742a5
2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/13372
* module.c (write_symbol, write_symtree): Don't write symbols
wrongly added to namespace.
* trans-decl.c (gfc_create_module_variable): Don't create a
backend decl for a symbol incorrectly added to namespace.
2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/13201 PR fortran/13201
* resolve.c (resolve_symbol): Verify that parameter array has an * resolve.c (resolve_symbol): Verify that parameter array has an
explicit shape. Fix typos and coding style issues in surrounding explicit shape. Fix typos and coding style issues in surrounding
......
...@@ -3137,6 +3137,13 @@ write_symbol (int n, gfc_symbol * sym) ...@@ -3137,6 +3137,13 @@ write_symbol (int n, gfc_symbol * sym)
if (sym->attr.flavor == FL_UNKNOWN || sym->attr.flavor == FL_LABEL) if (sym->attr.flavor == FL_UNKNOWN || sym->attr.flavor == FL_LABEL)
gfc_internal_error ("write_symbol(): bad module symbol '%s'", sym->name); gfc_internal_error ("write_symbol(): bad module symbol '%s'", sym->name);
if (sym->attr.flavor == FL_VARIABLE && sym->ts.type == BT_UNKNOWN)
/* TODO: this is a workaround for some of the problems in PR15481,
and fixes the dependent bug PR13372. In an ideal frontend, this
should never happen. */
return;
mio_integer (&n); mio_integer (&n);
mio_internal_string (sym->name); mio_internal_string (sym->name);
...@@ -3260,6 +3267,12 @@ write_symtree (gfc_symtree * st) ...@@ -3260,6 +3267,12 @@ write_symtree (gfc_symtree * st)
&& !sym->attr.subroutine && !sym->attr.function)) && !sym->attr.subroutine && !sym->attr.function))
return; return;
if (sym->attr.flavor == FL_VARIABLE && sym->ts.type == BT_UNKNOWN)
/* TODO: this is a workaround for some of the problems in PR15481,
and fixes the dependent bug PR13372. In an ideal frontend, this
should never happen. */
return;
if (check_unique_name (st->name)) if (check_unique_name (st->name))
return; return;
......
...@@ -1788,6 +1788,12 @@ gfc_create_module_variable (gfc_symbol * sym) ...@@ -1788,6 +1788,12 @@ gfc_create_module_variable (gfc_symbol * sym)
&& (sym->attr.flavor != FL_PARAMETER || sym->attr.dimension == 0)) && (sym->attr.flavor != FL_PARAMETER || sym->attr.dimension == 0))
return; return;
if (sym->attr.flavor == FL_VARIABLE && sym->ts.type == BT_UNKNOWN)
/* TODO: This is a workaround for the issue outlined in PR 15481,
and it fixes the bug in PR13372. This should never happen in an
ideal frontend. */
return;
/* Don't generate variables from other modules. */ /* Don't generate variables from other modules. */
if (sym->attr.use_assoc) if (sym->attr.use_assoc)
return; return;
......
2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/13372
* gfortran.fortran-torture/compile/named_args_2.f90: New test.
2004-06-09 Bud Davis <bdavis9659@comcast.net> 2004-06-09 Bud Davis <bdavis9659@comcast.net>
PR gfortran/14897 PR gfortran/14897
* gfortran.fortran-torture/execute/t_edit.f90 * gfortran.fortran-torture/execute/t_edit.f90: New test.
2004-06-09 Bud Davis <bdavis9659@comcast.net> 2004-06-09 Bud Davis <bdavis9659@comcast.net>
PR gfortran/15755 PR gfortran/15755
* gfortran.fortran-torture/execute/backspace.c : New test. * gfortran.fortran-torture/execute/backspace.c : New test.
......
! this is the reduced testcase from pr13372
! we wrongly add a symbol "P" to the module
! Currently (2004/06/09) a workaround is in place
! PR 15481 tracks any steps towards a real fix.
module typeSizes
implicit none
integer, parameter :: FourByteReal = selected_real_kind(P = 6, R = 37)
end module typeSizes
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment