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



janus at gcc dot gnu.org changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |ASSIGNED

           Keywords|                            |rejects-valid

   Last reconfirmed|                            |2013-04-15

                 CC|                            |janus at gcc dot gnu.org

         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org

                   |gnu.org                     |

     Ever Confirmed|0                           |1

            Summary|Issue with a procedure      |[F03] Issue with a

                   |defined with a generic name |procedure defined with a

                   |returning procedure pointer |generic name returning

                   |                            |procedure pointer



--- Comment #1 from janus at gcc dot gnu.org 2013-04-15 14:44:25 UTC ---

Here is a draft patch which fixes the behavior for the test case:





Index: gcc/fortran/expr.c

===================================================================

--- gcc/fortran/expr.c    (revision 197943)

+++ gcc/fortran/expr.c    (working copy)

@@ -3540,7 +3540,11 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_ex

     }

       else if (rvalue->expr_type == EXPR_FUNCTION)

     {

-      s2 = rvalue->symtree->n.sym->result;

+      if (rvalue->symtree->n.sym->attr.generic)

+        s2 = rvalue->value.function.esym->result;

+      else

+        s2 = rvalue->symtree->n.sym->result;

+

       name = s2->name;

     }

       else





Regtesting now ...

Reply via email to