------- Comment #7 from burnus at gcc dot gnu dot org  2009-08-16 12:21 -------
Tracking of the remaining items:

a) Implicit typing of external procedures in general: I filled PR 41083 for
this purpose.

b) Implicit typing of procedure components:

   "procedure pointer components are never implicitly typed.  The
    quoted text from the standard does not apply to components; if it
    did apply to components, data components would also be implicitly
    typed and that would be a contradiction.  A clarifying edit is
    provided."

Quoted answer from interpretation request F03/0134 (09-236).
See http://www.j3-fortran.org/doc/year/09/09-236r1.txt

I understand this such that

  type t
    procedure(), pointer :: ptr
  end type t

is a ptr to a subroutine as it cannot be implicitly typed and thus cannot be a
function. The following program is invalid (quote from the interpretation
request) but accepted by gfortran:

  PROGRAM implicitppc
    EXTERNAL proc
    TYPE t
      PROCEDURE(),POINTER,NOPASS :: ptr
    END TYPE t
    TYPE(t) :: i
    i%ptr => proc
    PRINT *,i%ptr()
  END PROGRAM


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-08-16 12:21:12
               date|                            |


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

Reply via email to