This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/36426] Endless loop in gfc_apply_interface_mapping_to_expr



------- Comment #6 from janus at gcc dot gnu dot org  2008-11-01 19:06 -------
The following patch fixes comment #3 and comment #4:

Index: gcc/fortran/expr.c
===================================================================
--- gcc/fortran/expr.c  (revision 141520)
+++ gcc/fortran/expr.c  (working copy)
@@ -3511,12 +3511,11 @@ static bool
 replace_symbol (gfc_expr *expr, gfc_symbol *sym, int *i ATTRIBUTE_UNUSED)
 {
   if ((expr->expr_type == EXPR_VARIABLE || expr->expr_type == EXPR_FUNCTION)
-      && expr->symtree->n.sym->ns != sym->formal_ns
-      && expr->symtree->n.sym->attr.dummy)
+      && expr->symtree->n.sym->ns == sym->ts.interface->formal_ns)
     {
       gfc_symtree *stree;
       gfc_get_sym_tree (expr->symtree->name, sym->formal_ns, &stree);
-      stree->n.sym->attr.referenced = expr->symtree->n.sym->attr.referenced;
+      stree->n.sym->attr = expr->symtree->n.sym->attr;
       expr->symtree = stree;
     }
   return false;
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c       (revision 141515)
+++ gcc/fortran/resolve.c       (working copy)
@@ -8936,6 +8936,9 @@ resolve_symbol (gfc_symbol *sym)
              sym->ts.cl->resolved = ifc->ts.cl->resolved;
              sym->ts.cl->length = gfc_copy_expr (ifc->ts.cl->length);
              gfc_expr_replace_symbols (sym->ts.cl->length, sym);
+             /* Add charlen to namespace.  */
+             sym->ts.cl->next = sym->formal_ns->cl_list;
+             sym->formal_ns->cl_list = sym->ts.cl;
            }
        }
       else if (sym->ts.interface->name[0] != '\0')


-- 

janus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |janus at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-11-01 14:49:48         |2008-11-01 19:06:52
               date|                            |


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]