aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorDaniel Kraft <d@domob.eu>2008-09-05 22:51:50 +0200
committerDaniel Kraft <domob@gcc.gnu.org>2008-09-05 22:51:50 +0200
commita82f1f2efa3d87858bb4450212246447c6e0a5fb (patch)
tree74c97192f2bfa14525420d189b895958f01fdc14 /gcc/fortran/resolve.c
parent5ffebee7bbf8edb14dd1acdc45b1f5b481964d11 (diff)
downloadgcc-a82f1f2efa3d87858bb4450212246447c6e0a5fb.zip
gcc-a82f1f2efa3d87858bb4450212246447c6e0a5fb.tar.gz
gcc-a82f1f2efa3d87858bb4450212246447c6e0a5fb.tar.bz2
re PR fortran/35837 (rej.valid: Host-associated SAVEd variable and PURE function)
2008-09-05 Daniel Kraft <d@domob.eu> PR fortran/35837 * resolve.c (resolve_types): Restore gfc_current_ns on exit. * symbol.c (gfc_save_all): Removed blank line. 2008-09-05 Daniel Kraft <d@domob.eu> PR fortran/35837 * gfortran.dg/save_3.f90: New test. From-SVN: r140046
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 8c41ce4..e28d704 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -10116,8 +10116,7 @@ resolve_types (gfc_namespace *ns)
gfc_charlen *cl;
gfc_data *d;
gfc_equiv *eq;
-
- gfc_current_ns = ns;
+ gfc_namespace* old_ns = gfc_current_ns;
/* Check that all IMPLICIT types are ok. */
if (!ns->seen_implicit_none)
@@ -10131,6 +10130,8 @@ resolve_types (gfc_namespace *ns)
return;
}
+ gfc_current_ns = ns;
+
resolve_entries (ns);
resolve_common_vars (ns->blank_common.head, false);
@@ -10185,6 +10186,8 @@ resolve_types (gfc_namespace *ns)
warn_unused_fortran_label (ns->st_labels);
gfc_resolve_uops (ns->uop_root);
+
+ gfc_current_ns = old_ns;
}