------- Comment #3 from jaydub66 at gmail dot com  2008-04-07 22:01 -------
Another thing I just noticed is that dummy procedures are currently not checked
for being called with the right arguments (-> compare_actual_formal), e.g. in
the above test case "call f([1,2,3])" could also be called with a different
number of arguments like "call f(1,2)" without any error message.
In fact this check is currently omitted for any procedure which has the
EXTERNAL attribute (which includes all procedures declared via the
"PROCEDURE()::" statement). But I guess this check should better be omitted
only for procedures which have an implicit interface, right?
This can be cured with the following patch:

Index: gcc/fortran/interface.c
===================================================================
--- gcc/fortran/interface.c     (revision 133905)
+++ gcc/fortran/interface.c     (working copy)
@@ -2419,8 +2419,7 @@ gfc_procedure_use (gfc_symbol *sym, gfc_
        }
     }

-  if (sym->attr.external
-      || sym->attr.if_source == IFSRC_UNKNOWN)
+  if (sym->attr.if_source == IFSRC_UNKNOWN)
     {
       gfc_actual_arglist *a;
       for (a = *ap; a; a = a->next)


-- 


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

Reply via email to