38 lines
711 B
Fortran
38 lines
711 B
Fortran
! { dg-do compile }
|
|
|
|
! Parsing of finalizer procedure definitions.
|
|
! Check that FINAL-declarations are only allowed on types defined in the
|
|
! specification part of a module.
|
|
|
|
MODULE final_type
|
|
IMPLICIT NONE
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE bar
|
|
IMPLICIT NONE
|
|
|
|
TYPE :: mytype
|
|
INTEGER, ALLOCATABLE :: fooarr(:)
|
|
REAL :: foobar
|
|
CONTAINS
|
|
FINAL :: myfinal ! { dg-error "in the specification part of a MODULE" }
|
|
END TYPE mytype
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE myfinal (el)
|
|
TYPE(mytype) :: el
|
|
END SUBROUTINE myfinal
|
|
|
|
END SUBROUTINE bar
|
|
|
|
END MODULE final_type
|
|
|
|
PROGRAM finalizer
|
|
IMPLICIT NONE
|
|
! Do nothing here
|
|
END PROGRAM finalizer
|
|
|
|
! { dg-final { cleanup-modules "final_type" } }
|