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

Reply via email to