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: [email protected]
ReportedBy: [email protected]
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"