http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54199
Bug #: 54199 Summary: Superfluous diagnostic "is also the name of an intrinsic" for internal procedures Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org Compiling the following program with -Wall gives the message: function fraction(x) 1 Warning: 'fraction' declared at (1) is also the name of an intrinsic. It can only be called via an explicit interface or if declared EXTERNAL. I believe this message should not be printed for internal procedures. (For module procedures, there is a different warning, which can stay: "'fraction' declared at (1) may shadow the intrinsic of the same name. In order to call the intrinsic, explicit INTRINSIC declarations may be required.") subroutine test() contains function fraction(x) real :: x end function fraction end subroutine test Untested patch: --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -4510,3 +4518,3 @@ gfc_warn_intrinsic_shadow (const gfc_symbol* sym, bool in_module, bool func) sym->name, &sym->declared_at); - else + else if (!sym->ns->proc_name) gfc_warning ("'%s' declared at %L is also the name of an intrinsic. It can"