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



Tobias Burnus <burnus at gcc dot gnu.org> changed:



           What    |Removed                     |Added

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

                 CC|                            |burnus at gcc dot gnu.org



--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> 2013-04-15 
17:35:57 UTC ---

(In reply to comment #1)

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



I think you should directly use



if (rvalue->value.function.esym)

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





I was additionally wondering whether one should also take care of isym besides

esym, but probably no intrinsic returns a pointer.

Reply via email to