http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45740

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |ASSIGNED
         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #8 from janus at gcc dot gnu.org 2010-10-02 18:51:21 UTC ---
Patch:


Index: gcc/fortran/expr.c
===================================================================
--- gcc/fortran/expr.c    (revision 164900)
+++ gcc/fortran/expr.c    (working copy)
@@ -3250,6 +3250,14 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_ex
       return FAILURE;
     }

+  /* Check for F08:C551.  */
+  if (rvalue->expr_type == EXPR_VARIABLE
+      && rvalue->symtree->n.sym->attr.is_protected
+      && rvalue->symtree->n.sym->attr.use_assoc)
+    gfc_error ("Variable '%s' is PROTECTED and can not appear in a "
+           "pointer assignment statement at %L",
+           rvalue->symtree->n.sym->name, &rvalue->where);
+
   proc_pointer = lvalue->symtree->n.sym->attr.proc_pointer;

   rank_remap = false;

Reply via email to