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

            Bug ID: 60458
           Summary: Error message on associate: deferred type parameter
                    and requires either the pointer or allocatable
                    attribute
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: antony at cosmologist dot info

module A
    Type T
    contains
    procedure :: Test
    procedure :: TestP
    end type
    contains

    subroutine test(this)
    class(T) this

    associate(S=> this%TestP())
        print *,S
        end associate

    end subroutine

    function TestP(this)
    class(T) this
    character(LEN=:), allocatable :: TestP
    TestP =''
    end function TestP

    end module


gives error

    associate(S=> this%TestP())
                              1
Error: Entity 's' at (1) has a deferred type parameter and requires either the
pointer or allocatable attribute

At best the error message is unhelpful (defining S with pointer attribute does
not help), and the code seems valid (though it also happens to ICE ifort).

Reply via email to