/* If a symbol has been host_associated mark it. This is used latter,
to identify if aliasing is possible via host association. */
if (sym->attr.flavor == FL_VARIABLE
- && gfc_current_ns->parent
- && (gfc_current_ns->parent == sym->ns
- || (gfc_current_ns->parent->parent
- && gfc_current_ns->parent->parent == sym->ns)))
+ && (!sym->ns->code || sym->ns->code->op != EXEC_BLOCK
+ || !sym->ns->code->ext.block.assoc)
+ && gfc_current_ns->parent
+ && (gfc_current_ns->parent == sym->ns
+ || (gfc_current_ns->parent->parent
+ && gfc_current_ns->parent->parent == sym->ns)))
sym->attr.host_assoc = 1;
if (gfc_current_ns->proc_name
coarrays. */
static void
-generate_coarray_init (gfc_namespace * ns __attribute((unused)))
+generate_coarray_init (gfc_namespace *ns)
{
tree fndecl, tmp, decl, save_fn_decl;
--- /dev/null
+!{ dg-do run }
+
+! Contributed by Damian Rouson <damian@archaeologic.codes>
+! Check that PR fortran/85510 links.
+
+module foo
+contains
+ subroutine bar()
+ integer, save :: i[*] = 1
+ associate(n=>1)
+ if (i[1] /= 1) stop 1
+ end associate
+ end subroutine
+end module
+
+use foo
+call bar()
+end
+