[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