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



--- Comment #2 from janus at gcc dot gnu.org 2013-01-13 10:36:22 UTC ---

Yet another variant:





module pdfs

  type, abstract :: pdf

  contains

    procedure(getdims), deferred :: getdims

    procedure(getx), deferred :: getx

  end type pdf



  abstract interface

    pure function getdims(this)

      import pdf

      class(pdf), intent(in) :: this

      integer getdims

    end function getdims



    pure function getx(this)

      import pdf

      class(pdf), intent(in) :: this

      real, dimension(this%getdims()) :: getx

    end function getx

  end interface



end module pdfs







gives me (four times!):



      real, dimension(this%getdims()) :: getx

                      1

Error: Function 'this' at (1) must be PURE





which is of course bogus, since 'this' is not even a function, and getdims is

actually pure.

Reply via email to