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



Tobias Burnus <burnus at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |burnus at gcc dot gnu.org



--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> 2013-04-29 
09:31:53 UTC ---

(In reply to comment #6)

>   external ff, cc

>   call q(ff)

>

> I absolutely *never* use implicit declarations, therefore I'm not sure: Is an

> "external ff" declaration supposed to get implicitly typed as real in comment

> 4?



The program is *valid*; as "ff" is referenced as function, it has to be

implicitly typed, which is "real" according to the implicit typing rules.



I concur that the standard does not very explicitly state this. But the

question (and example of comment 4) exactly matches the interpretation request

F03/0071 (cf. comment 0). J3/WG5 answered it

http://www.j3-fortran.org/doc/standing/links/016.txt - to quote from the answer

to Q2:



"2. The main program program unit is conforming, although the program

    would not be if the external procedure FF were not in fact a real

    function.  If the reference had been to QR instead of Q, it would

    be clear that FF has to be a real function, from the point of view

    of the main program scoping unit.  At the call site, the reference

    to Q is known to be a reference either to QR or QC (the interface

    block for Q is not defective), both of which require a function

    actual argument.  FF is known to be either a subroutine or a

    function, since it explicitly has the EXTERNAL attribute, and if

    it is a function it is known by implicit typing rules to be real.

    Because neither specific in the generic allows a subroutine as an

    argument, FF must therefore be a function.  Since FF is real, QR

    is called.  (The generic cannot have a specific that accepts a

    subroutine as an argument, as that would violate the requirements

    in 16.2.3.)"

Reply via email to