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/30870] GENERIC non-INTRINSIC procedure rejected as actual argument



------- Comment #2 from pault at gcc dot gnu dot org  2007-02-21 10:47 -------
This fixes it:

Index: gcc/fortran/resolve.c
===================================================================
*** gcc/fortran/resolve.c       (revision 122101)
--- gcc/fortran/resolve.c       (working copy)
*************** resolve_actual_arglist (gfc_actual_argli
*** 924,932 ****

          if (sym->attr.generic)
            {
!             gfc_error ("GENERIC non-INTRINSIC procedure '%s' is not "
!                        "allowed as an actual argument at %L", sym->name,
!                        &e->where);
            }

          /* If the symbol is the function that names the current (or
--- 924,943 ----

          if (sym->attr.generic)
            {
!             gfc_interface *p;
!             for (p = sym->generic; p; p = p->next)
!               if (strcmp (sym->name, p->sym->name) == 0)
!                 {
!                   e->symtree = gfc_find_symtree
!                                 (p->sym->ns->sym_root, sym->name);
!                   sym = p->sym;
!                   break;
!                 }
!
!             if (p == NULL || e->symtree == NULL)
!               gfc_error ("GENERIC non-INTRINSIC procedure '%s' is not "
!                          "allowed as an actual argument at %L", sym->name,
!                          &e->where);
            }

          /* If the symbol is the function that names the current (or

It needs commenting to the effect that a generic that is also a specific is OK.

I'd be more than happy if somebody would regtest/submit/commit this one - I
cannot for some weeks.

Paul


-- 


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


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