From 6d2bee95d82dcf40d115a3ba3a793a9b71a17a64 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Tue, 28 May 2013 20:30:03 +0200 Subject: [PATCH] re PR fortran/37336 ([F03] Finish derived-type finalization) 2013-05-28 Tobias Burnus PR fortran/37336 * resolve.c (gfc_resolve_finalizers): Remove not implemented * error. 2013-05-28 Tobias Burnus PR fortran/37336 * gfortran.dg/finalize_11.f90: New. * gfortran.dg/finalize_4.f03: Remove dg-error. * gfortran.dg/finalize_5.f03: Ditto. * gfortran.dg/finalize_6.f03: Ditto. * gfortran.dg/finalize_7.f03: Ditto. From-SVN: r199388 --- gcc/fortran/ChangeLog | 5 ++++ gcc/fortran/resolve.c | 4 --- gcc/testsuite/ChangeLog | 9 +++++++ gcc/testsuite/gfortran.dg/finalize_11.f90 | 31 +++++++++++++++++++++++ gcc/testsuite/gfortran.dg/finalize_4.f03 | 3 --- gcc/testsuite/gfortran.dg/finalize_5.f03 | 3 --- gcc/testsuite/gfortran.dg/finalize_6.f90 | 9 +++---- gcc/testsuite/gfortran.dg/finalize_7.f03 | 3 --- 8 files changed, 48 insertions(+), 19 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/finalize_11.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b9a4a6998df..326a01f0875 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-05-28 Tobias Burnus + + PR fortran/37336 + * resolve.c (gfc_resolve_finalizers): Remove not implemented error. + 2013-05-28 Tobias Burnus * trans-expr.c (gfc_conv_procedure_call): Deallocate diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 78a1038009b..4cfc858b7c4 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -11241,10 +11241,6 @@ error: " defined at %L, suggest also scalar one", derived->name, &derived->declared_at); - /* TODO: Remove this error when finalization is finished. */ - gfc_error ("Finalization at %L is not yet implemented", - &derived->declared_at); - gfc_find_derived_vtab (derived); return result; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fa8802eb2e2..cbf3d326149 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2013-05-28 Tobias Burnus + + PR fortran/37336 + * gfortran.dg/finalize_11.f90: New. + * gfortran.dg/finalize_4.f03: Remove dg-error. + * gfortran.dg/finalize_5.f03: Ditto. + * gfortran.dg/finalize_6.f03: Ditto. + * gfortran.dg/finalize_7.f03: Ditto. + 2013-05-28 Tobias Burnus * gfortran.dg/class_array_16.f90: New. diff --git a/gcc/testsuite/gfortran.dg/finalize_11.f90 b/gcc/testsuite/gfortran.dg/finalize_11.f90 new file mode 100644 index 00000000000..e9bb8147789 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/finalize_11.f90 @@ -0,0 +1,31 @@ +! { dg-do compile } +! { dg-options "-std=f2003" } +! +! Copied from finalize_6.f90 - was before rejected as the finalization +! wrapper uses TS29913 (-std=f2008ts) features. +! + +MODULE final_type + IMPLICIT NONE + + TYPE :: mytype + INTEGER :: fooarr(42) + REAL :: foobar + CONTAINS + FINAL :: finalize_single + END TYPE mytype + +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 diff --git a/gcc/testsuite/gfortran.dg/finalize_4.f03 b/gcc/testsuite/gfortran.dg/finalize_4.f03 index 11e094f0d8f..b4c08f236da 100644 --- a/gcc/testsuite/gfortran.dg/finalize_4.f03 +++ b/gcc/testsuite/gfortran.dg/finalize_4.f03 @@ -48,6 +48,3 @@ PROGRAM finalizer DEALLOCATE(mat) END PROGRAM finalizer - -! TODO: Remove this once finalization is implemented. -! { dg-excess-errors "not yet implemented" } diff --git a/gcc/testsuite/gfortran.dg/finalize_5.f03 b/gcc/testsuite/gfortran.dg/finalize_5.f03 index b9ec3768fe4..fb8153140b7 100644 --- a/gcc/testsuite/gfortran.dg/finalize_5.f03 +++ b/gcc/testsuite/gfortran.dg/finalize_5.f03 @@ -107,6 +107,3 @@ PROGRAM finalizer IMPLICIT NONE ! Nothing here, errors above END PROGRAM finalizer - -! TODO: Remove this once finalization is implemented. -! { dg-excess-errors "not yet implemented" } diff --git a/gcc/testsuite/gfortran.dg/finalize_6.f90 b/gcc/testsuite/gfortran.dg/finalize_6.f90 index 82d662f8c8d..d155c7bd0a5 100644 --- a/gcc/testsuite/gfortran.dg/finalize_6.f90 +++ b/gcc/testsuite/gfortran.dg/finalize_6.f90 @@ -10,9 +10,9 @@ MODULE final_type TYPE :: mytype INTEGER :: fooarr(42) REAL :: foobar - CONTAINS ! { dg-error "Fortran 2003" } - FINAL :: finalize_single ! { dg-error "Fortran 2003" } - END TYPE mytype + 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 @@ -28,6 +28,3 @@ PROGRAM finalizer IMPLICIT NONE ! Do nothing END PROGRAM finalizer - -! TODO: Remove this once finalization is implemented. -! { dg-excess-errors "not yet implemented" } diff --git a/gcc/testsuite/gfortran.dg/finalize_7.f03 b/gcc/testsuite/gfortran.dg/finalize_7.f03 index 6ca4f55db7a..5807ed50e15 100644 --- a/gcc/testsuite/gfortran.dg/finalize_7.f03 +++ b/gcc/testsuite/gfortran.dg/finalize_7.f03 @@ -52,6 +52,3 @@ PROGRAM finalizer IMPLICIT NONE ! Nothing here END PROGRAM finalizer - -! TODO: Remove this once finalization is implemented. -! { dg-excess-errors "not yet implemented" } -- 2.30.2