! { dg-do compile } ! { dg-options "-std=f95" } ! Parsing of finalizer procedure definitions. ! Check that CONTAINS/FINAL in derived types is rejected for F95. MODULE final_type IMPLICIT NONE TYPE :: mytype INTEGER :: fooarr(42) REAL :: foobar CONTAINS ! { dg-error "Fortran 2003: CONTAINS block in derived type definition" } FINAL :: finalize_single ! { dg-error "Fortran 2003: FINAL procedure declaration|FINAL procedure 'finalize_single' at .1. is not a SUBROUTINE" } END TYPE mytype ! { dg-error "Fortran 2008: Derived type definition at .1. with empty CONTAINS section" } CONTAINS SUBROUTINE finalize_single (el) IMPLICIT NONE TYPE(mytype) :: el ! Do nothing in this test END SUBROUTINE finalize_single END MODULE final_type PROGRAM finalizer IMPLICIT NONE ! Do nothing END PROGRAM finalizer