[Bug fortran/40041] spurious warning with INTRINSIC statement

burnus at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed May 6 10:27:00 GMT 2009



------- Comment #1 from burnus at gcc dot gnu dot org  2009-05-06 10:26 -------
(In reply to comment #0)
> The same warnings are given if the arguments of ABS/MAX are of default-real
> kind, so this not related to implicit typing.

I have to admit that I don't fully understand that sentence, but I don't get
the warning with IMPLICIT NONE. I also don't see the relation to the arguments
of ABS/MAX -- I think it is about implicit typing of the result value of
ABS/MAX itself.

Untested patch:

--- resolve.c   (revision 147168)
+++ resolve.c   (working copy)
@@ -9320,13 +9526,14 @@ resolve_symbol (gfc_symbol *sym)

       if ((isym = gfc_find_function (sym->name)))
        {
-         if (sym->ts.type != BT_UNKNOWN && gfc_option.warn_surprising)
+         if (sym->ts.type != BT_UNKNOWN && gfc_option.warn_surprising
+             && !sym->attr.implicit_type)
            gfc_warning ("Type specified for intrinsic function '%s' at %L is"
                         " ignored", sym->name, &sym->declared_at);
        }
       else if ((isym = gfc_find_subroutine (sym->name)))
        {
-         if (sym->ts.type != BT_UNKNOWN)
+         if (sym->ts.type != BT_UNKNOWN && !sym->attr.implicit_type)
            {
              gfc_error ("Intrinsic subroutine '%s' at %L shall not have a
type"
                         " specifier", sym->name, &sym->declared_at);


-- 


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



More information about the Gcc-bugs mailing list