[Bug fortran/51268] [Regression] A subroutine can not know anymore its own interface

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 24 14:45:00 GMT 2011


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

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-11-24 14:04:20 UTC ---
(In reply to comment #6)

> "Within a scoping unit, identifiers of entities in the following classes:
> (1) ..., abstract interfaces, generic interfaces, ...
> are local identifiers in that scoping unit.
> Within a scoping unit, a local identifier of an entity of class (1) shall not
> be the same as a global identifier used in that scoping unit."
> 
> There is no explicit rule regarding the "specific interfaces" which we are
> interested in since the beginning.

Well, there is:
 "external procedures accessed via USE,"
which should apply as "1.3.112.2 external procedure -- procedure defined [...]
by means other than Fortran (12.6.3)", namely (12.6.3): "The interface of a
procedure defined by means other than Fortran may be specified by an interface
body or procedure declaration statement."


> "A procedure shall not have more than one explicit specific interface in a
> given scoping unit, except that if the interface is accessed by use
> association, there may be more than one local name for the procedure".
> As far as I understand, specific interface names accessed by use-association
> do not conflict with the procedure name itself. Isn't it a key point in our
> discussion?

Well, it is the key point of the discussion. However, the quote is about:
  USE m, func1 => f, func2 => f
where func1 and func2 both are different local names for the same procedure and
where the USE statement does not make "f" a class-1 identifier. And there is
also:
  use m1, only: f
  use m2, only: f
which is OK if "m2" use-associates "f" from m1 (or vice versa).



More information about the Gcc-bugs mailing list