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