------- 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