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

--- Comment #11 from janus at gcc dot gnu.org 2011-10-08 15:08:25 UTC ---
Here is an alternative patch to the one in comment #4:

Index: gcc/fortran/expr.c
===================================================================
--- gcc/fortran/expr.c    (revision 179710)
+++ gcc/fortran/expr.c    (working copy)
@@ -4144,7 +4144,8 @@ replace_symbol (gfc_expr *expr, gfc_symbol *sym, i
   if ((expr->expr_type == EXPR_VARIABLE 
        || (expr->expr_type == EXPR_FUNCTION
        && !gfc_is_intrinsic (expr->symtree->n.sym, 0, expr->where)))
-      && expr->symtree->n.sym->ns == sym->ts.interface->formal_ns)
+      && expr->symtree->n.sym->ns == sym->ts.interface->formal_ns
+      && expr->symtree->n.sym->attr.dummy)
     {
       gfc_symtree *stree;
       gfc_namespace *ns = sym->formal_ns;


We simply forgot to check if the symbol we're replacing is actually a dummy
argument! This even qualifies as obvious, I think ...

Reply via email to