35 lines
661 B
Fortran
35 lines
661 B
Fortran
! { dg-do compile }
|
|
! Tests the fix for PR28630, in which a contained,
|
|
! derived type function caused an ICE if its definition
|
|
! was both host and use associated.
|
|
!
|
|
! Contributed by Mark Hesselink <mhesseli@alumni.caltech.edu>
|
|
!
|
|
MODULE types
|
|
TYPE :: t
|
|
INTEGER :: i
|
|
END TYPE
|
|
END MODULE types
|
|
|
|
MODULE foo
|
|
USE types
|
|
CONTAINS
|
|
FUNCTION bar (x) RESULT(r)
|
|
USE types
|
|
REAL, INTENT(IN) :: x
|
|
TYPE(t) :: r
|
|
r = t(0)
|
|
END FUNCTION bar
|
|
END MODULE
|
|
|
|
|
|
LOGICAL FUNCTION foobar (x)
|
|
USE foo
|
|
REAL, INTENT(IN) :: x
|
|
TYPE(t) :: c
|
|
foobar = .FALSE.
|
|
c = bar (x)
|
|
END FUNCTION foobar
|
|
! { dg-final { cleanup-modules "types foo" } }
|
|
|