------- Comment #2 from pault at gcc dot gnu dot org 2009-02-11 15:08 -------
This fixes the bug. I need to look at the passing of Cray pointers in general
because it looks a bit shakey to me.
trans-expr.c:
2626c2626,2637
< if (fsym && fsym->attr.value)
---
> if (fsym && fsym->attr.flavor == FL_PROCEDURE
> && e->expr_type == EXPR_VARIABLE
> && e->symtree->n.sym->attr.cray_pointee)
> {
> /* The Cray pointer needs to be converted to a pointer type
> pointee. The symbol gives the pointee address. */
> gfc_conv_expr (&parmse, e);
> type = build_pointer_type (TREE_TYPE (parmse.expr));
> tmp = gfc_get_symbol_decl (e->symtree->n.sym->cp_pointer);
> parmse.expr = convert (type, tmp);
> }
> else if (fsym && fsym->attr.value)
Cheers
Paul
--
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|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2009-02-11 15:08:51
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36528