Index: trans-decl.c
===================================================================
--- trans-decl.c	(revision 174625)
+++ trans-decl.c	(working copy)
@@ -3388,7 +3388,11 @@
 
       if (sym->attr.dimension)
 	{
-	  switch (sym->as->type)
+          /* Assumed-size Cray pointees need to be treated as AS_EXPLICIT.  */
+          array_type tmp = sym->as->type;
+          if (tmp == AS_ASSUMED_SIZE && sym->as->cp_was_assumed)
+            tmp = AS_EXPLICIT;
+          switch (tmp)
 	    {
 	    case AS_EXPLICIT:
 	      if (sym->attr.dummy || sym->attr.result)
