------- 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