! { 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