From e4a5f73449d7352ba8128fecbc9a9570d746abdb Mon Sep 17 00:00:00 2001 From: Mark Eggleston Date: Fri, 17 Jan 2020 08:49:25 +0000 Subject: PATCH] Fortran: PR93263 -fno-automatic and RECURSIVE The use of -fno-automatic should not affect the save attribute of a recursive procedure. The first test case checks unsaved variables and the second checks saved variables. --- gcc/fortran/resolve.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/fortran/resolve.c') diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 6f2a4c4..bddab39 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -17079,6 +17079,7 @@ resolve_types (gfc_namespace *ns) gfc_data *d; gfc_equiv *eq; gfc_namespace* old_ns = gfc_current_ns; + bool recursive = ns->proc_name && ns->proc_name->attr.recursive; if (ns->types_resolved) return; @@ -17132,7 +17133,7 @@ resolve_types (gfc_namespace *ns) gfc_traverse_ns (ns, resolve_values); - if (ns->save_all || !flag_automatic) + if (ns->save_all || (!flag_automatic && !recursive)) gfc_save_all (ns); iter_stack = NULL; -- cgit v1.1