1219888Sed! { dg-do compile } 2267123Semaste 3219888Sed! Parsing of finalizer procedure definitions. 4219888Sed! Check parsing of valid finalizer definitions. 5219888Sed 6219888SedMODULE final_type 7219888Sed IMPLICIT NONE 8219888Sed 9219888Sed TYPE :: mytype 10219888Sed INTEGER, ALLOCATABLE :: fooarr(:) 11219888Sed REAL :: foobar 12219888Sed CONTAINS 13219888Sed FINAL :: finalize_single 14219888Sed FINAL finalize_vector, finalize_matrix 15219888Sed ! TODO: Test with different kind type parameters once they are implemented. 16219888Sed END TYPE mytype 17219888Sed 18219888SedCONTAINS 19219888Sed 20219888Sed ELEMENTAL SUBROUTINE finalize_single (el) 21219888Sed IMPLICIT NONE 22219888Sed TYPE(mytype), INTENT(IN) :: el 23219888Sed ! Do nothing in this test 24219888Sed END SUBROUTINE finalize_single 25219888Sed 26219888Sed SUBROUTINE finalize_vector (el) 27219888Sed IMPLICIT NONE 28219888Sed TYPE(mytype), INTENT(INOUT) :: el(:) 29219888Sed ! Do nothing in this test 30219888Sed END SUBROUTINE finalize_vector 31219888Sed 32219888Sed SUBROUTINE finalize_matrix (el) 33267035Semaste IMPLICIT NONE 34267035Semaste TYPE(mytype) :: el(:, :) 35219888Sed ! Do nothing in this test 36219888Sed END SUBROUTINE finalize_matrix 37219888Sed 38219888SedEND MODULE final_type 39219888Sed 40267301SemastePROGRAM finalizer 41219888Sed USE final_type, ONLY: mytype 42219888Sed IMPLICIT NONE 43219888Sed 44219888Sed TYPE(mytype) :: el, vec(42) 45267011Semaste TYPE(mytype), ALLOCATABLE :: mat(:, :) 46219888Sed 47259680Semaste ALLOCATE(mat(2, 3)) 48259680Semaste DEALLOCATE(mat) 49267301Semaste 50259680SemasteEND PROGRAM finalizer 51267301Semaste