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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011-09-08
         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #3 from janus at gcc dot gnu.org 2011-09-08 14:47:09 UTC ---
Preliminary patch:

Index: gcc/fortran/interface.c
===================================================================
--- gcc/fortran/interface.c     (revision 178664)
+++ gcc/fortran/interface.c     (working copy)
@@ -3643,11 +3643,19 @@ gfc_check_typebound_override (gfc_symtree* proc, g
       if (proc_pass_arg != argpos && old_pass_arg != argpos
          && !gfc_compare_types (&proc_formal->sym->ts, &old_formal->sym->ts))
        {
-         gfc_error ("Types mismatch for dummy argument '%s' of '%s' %L "
-                    "in respect to the overridden procedure",
+         gfc_error ("Types mismatch for dummy argument '%s' of '%s' at %L "
+                    "with respect to the overridden procedure",
                     proc_formal->sym->name, proc->name, &where);
          return FAILURE;
        }
+      /* Check INTENT.  */
+      if (proc_formal->sym->attr.intent != old_formal->sym->attr.intent)
+       {
+         gfc_error ("INTENT mismatch in argument '%s' of '%s' at %L "
+                    "with respect to the overridden procedure",
+                    proc_formal->sym->name, proc->name, &where);
+         return FAILURE;
+       }

       ++argpos;
     }

Reply via email to