diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-05-28 20:30:03 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-05-28 20:30:03 +0200 |
commit | 6d2bee95d82dcf40d115a3ba3a793a9b71a17a64 (patch) | |
tree | f824b075b5ea79e41e049837b2d617971b19e54c | |
parent | b49eefa5747d53788ac33f34fa1d034acd21668e (diff) | |
download | gcc-6d2bee95d82dcf40d115a3ba3a793a9b71a17a64.zip gcc-6d2bee95d82dcf40d115a3ba3a793a9b71a17a64.tar.gz gcc-6d2bee95d82dcf40d115a3ba3a793a9b71a17a64.tar.bz2 |
re PR fortran/37336 ([F03] Finish derived-type finalization)
2013-05-28 Tobias Burnus <burnus@net-b.de>
PR fortran/37336
* resolve.c (gfc_resolve_finalizers): Remove not implemented
* error.
2013-05-28 Tobias Burnus <burnus@net-b.de>
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
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/finalize_11.f90 | 31 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/finalize_4.f03 | 3 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/finalize_5.f03 | 3 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/finalize_6.f90 | 9 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/finalize_7.f03 | 3 |
8 files changed, 48 insertions, 19 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b9a4a69..326a01f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2013-05-28 Tobias Burnus <burnus@net-b.de> + PR fortran/37336 + * resolve.c (gfc_resolve_finalizers): Remove not implemented error. + +2013-05-28 Tobias Burnus <burnus@net-b.de> + * trans-expr.c (gfc_conv_procedure_call): Deallocate polymorphic arrays for allocatable intent(out) dummies. (gfc_reset_vptr): New function, moved from trans-stmt.c diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 78a1038..4cfc858 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 fa8802e..cbf3d32 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,14 @@ 2013-05-28 Tobias Burnus <burnus@net-b.de> + 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 <burnus@net-b.de> + * gfortran.dg/class_array_16.f90: New. 2013-05-28 Tobias Burnus <burnus@net-b.de> diff --git a/gcc/testsuite/gfortran.dg/finalize_11.f90 b/gcc/testsuite/gfortran.dg/finalize_11.f90 new file mode 100644 index 0000000..e9bb814 --- /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 11e094f..b4c08f2 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 b9ec376..fb81531 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 82d662f..d155c7b 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 6ca4f55..5807ed5 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" } |