diff options
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 10 |
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) |