1! { dg-do compile } 2! { dg-options "-std=f95" } 3 4! Parsing of finalizer procedure definitions. 5! Check that CONTAINS/FINAL in derived types is rejected for F95. 6 7MODULE final_type 8 IMPLICIT NONE 9 10 TYPE :: mytype 11 INTEGER :: fooarr(42) 12 REAL :: foobar 13 CONTAINS ! { dg-error "Fortran 2003: CONTAINS block in derived type definition" } 14 FINAL :: finalize_single ! { dg-error "Fortran 2003: FINAL procedure declaration|FINAL procedure 'finalize_single' at .1. is not a SUBROUTINE" } 15 END TYPE mytype ! { dg-error "Fortran 2008: Derived type definition at .1. with empty CONTAINS section" } 16 17CONTAINS 18 19 SUBROUTINE finalize_single (el) 20 IMPLICIT NONE 21 TYPE(mytype) :: el 22 ! Do nothing in this test 23 END SUBROUTINE finalize_single 24 25END MODULE final_type 26 27PROGRAM finalizer 28 IMPLICIT NONE 29 ! Do nothing 30END PROGRAM finalizer 31