[Bug fortran/52083] New: Misleading warning for internal procedures with names of intrinsic procedures

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 1 16:56:00 GMT 2012


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

             Bug #: 52083
           Summary: Misleading warning for internal procedures with names
                    of intrinsic procedures
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: burnus@gcc.gnu.org


The following warning does not make much sense for internal procedures - their
interface is known by construction

The example prints:

  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.


Expected: Do the same as for module procedures, namely print:

  Warning: 'fraction' declared at (1) may shadow the intrinsic of the same
    name.  In order to call the intrinsic, explicit INTRINSIC declarations
    may be required.


Example:

  x = fraction()
contains
  function fraction()
    fraction = 1./42.
  end function fraction
end


 * * *

One probably needs to check:

  sym->ns->parent && sym->ns->parent->proc_name
  && sym->ns->parent->proc_name->attr.flavor != FL_MODULE

The current checks are done in intrinsic.c's gfc_warn_intrinsic_shadow.



More information about the Gcc-bugs mailing list