Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Too restrictive type-bound procedure overriding?

Sergio
Débutant
856 Visites

Hi,

I am unexpectedly getting error #8383 ("The dummy arguments of an overriding and overridden binding that correspond by position must have the same characteristics, except for the type of the passed object dummy arguments"). Here is a minimal example:

[fortran]

module my_module
    implicit none

    type :: Base
        integer :: sz
    contains
        procedure :: next => Base_next
    end type

    type,extends(Base) :: Extended
    contains
        procedure :: next => Extended_next
    end type

contains

    function Base_next(self,vector) result(continue)
        class(Base) :: self
        integer :: vector(self%sz)
        logical :: continue

        continue=.TRUE.
        return
    end function

    function Extended_next(self,vector) result(continue)
        class(Extended) :: self
        integer :: vector(self%sz)
        logical :: continue

        continue=self%Base%next(vector)
        return
    end function

end module
[/fortran]

Replacing self%sz with a constant (e.g. 3) in the declaration [fortran]integer :: vector(self%sz)[/fortran] fixes the problem. Replacing self%sz with self%Base%sz in line 22. This seems to me too restrictive. The code compiles OK with gfortran 4.7, fails to compile with ifort 13.0.1.

Thanks for your help.

0 Compliments
5 Réponses
Steven_L_Intel1
Employé
856 Visites

Thanks - I agree that this should be allowed. I have escalated it as issue DPD200241573 and will let you know here of any progress.

0 Compliments
Sergio
Débutant
856 Visites

Thanks a lot! And also, thanks a lot for your Doctor Fortran blog, I have found some very interesting stuff.

0 Compliments
Sergio
Débutant
856 Visites

Any progress on this? The bug is still present in version 14.0.1.

Best regards,

Sergio Losilla

0 Compliments
Steven_L_Intel1
Employé
856 Visites

I don't see any progress noted and have pinged the developer.

0 Compliments
Sergio
Débutant
856 Visites

Thanks :)

0 Compliments
Répondre