------- Comment #4 from pault at gcc dot gnu dot org  2007-08-14 16:44 -------
This fixes the problem.  However there are some odd regressions that do not
seem to have anything to do with it but which must be investigated.

Paul

Index: gcc/fortran/expr.c
===================================================================
*** gcc/fortran/expr.c  (revision 127396)
--- gcc/fortran/expr.c  (working copy)
*************** gfc_check_pointer_assign (gfc_expr *lval
*** 2739,2745 ****

    is_pure = gfc_pure (NULL);

!   if (is_pure && gfc_impure_variable (lvalue->symtree->n.sym))
      {
        gfc_error ("Bad pointer object in PURE procedure at %L",
&lvalue->where)
;
        return FAILURE;
--- 2739,2746 ----

    is_pure = gfc_pure (NULL);

!   if (is_pure && gfc_impure_variable (lvalue->symtree->n.sym)
!       && lvalue->symtree->n.sym->value != rvalue)
      {
        gfc_error ("Bad pointer object in PURE procedure at %L",
&lvalue->where)
;
        return FAILURE;


-- 

pault at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2007-07-24 17:22:47         |2007-08-14 16:44:34
               date|                            |


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

Reply via email to