[Patch, Fortran, OOP] PR 45933:[4.6 regression] ICE in gfc_add_component_ref, at fortran/class.c:77
Janus Weil
janus@gcc.gnu.org
Sun Oct 10 11:31:00 GMT 2010
> Here is another variant of Mark's test case, which gives a different
> error message:
>
> MODULE DAT_MOD
> TYPE :: DAT
> CONTAINS
> PROCEDURE :: LESS_THAN
> GENERIC :: OPERATOR (.LT.) => LESS_THAN
> END TYPE DAT
> CONTAINS
> LOGICAL FUNCTION LESS_THAN(A, B)
> CLASS (DAT), INTENT (IN) :: A, B
> LESS_THAN = .true.
> END FUNCTION LESS_THAN
> END MODULE DAT_MOD
>
> PROGRAM TEST
> USE DAT_MOD
> IMPLICIT NONE
> TYPE NODE
> CLASS (DAT), POINTER :: PT
> END TYPE NODE
> TYPE (NODE) :: NDA, NDB
> PRINT *, LST(NDA,NDB)
> CONTAINS
> LOGICAL FUNCTION LST(A, B)
> CLASS (NODE), INTENT (IN) :: A, B
> LST = A%PT .LT. B%PT
> END FUNCTION LST
> END
>
>
> $ gfortran-4.6 test.f90
> test.f90:21.15:
>
> PRINT *, LST(NDA,NDB)
> 1
> Error: Type mismatch in argument 'a' at (1); passed TYPE(node) to CLASS(dat)
This is now PR 45961.
Cheers,
Janus
More information about the Fortran
mailing list