summaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 26f11c50583..8ae1162b6ae 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -2013,7 +2013,7 @@ resolve_array_ref (gfc_array_ref * ar)
}
}
- if (compare_spec_to_ref (ar) == FAILURE)
+ if (!ar->as->cray_pointee && compare_spec_to_ref (ar) == FAILURE)
return FAILURE;
return SUCCESS;
@@ -5176,6 +5176,14 @@ resolve_equivalence (gfc_equiv *eq)
sym->name, &e->where, sym->ns->proc_name->name);
break;
}
+
+ /* Shall not be a Cray pointee. */
+ if (sym->attr.cray_pointee)
+ {
+ gfc_error ("Cray Pointee '%s' at %L cannot be an EQUIVALENCE "
+ "object", sym->name, &e->where);
+ continue;
+ }
/* Shall not be a named constant. */
if (e->expr_type == EXPR_CONSTANT)