2013-06-03 Tobias Burnus <burnus@net-b.de>
commitafb69dbf9cda0b037429a6d72ad67bad37f0d8d8
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Jun 2013 10:20:32 +0000 (4 10:20 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Jun 2013 10:20:32 +0000 (4 10:20 +0000)
treebc5eafdea238518ce5c6c9b8cd674dc39145b8b3
parent8c45824dd66c1f2371c68ada279f5bae54191a44
2013-06-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/37336
        * trans.h (gfc_build_final_call): Remove prototype.
        (gfc_add_finalizer_call): Add prototype.
        * trans-array.c (gfc_trans_dealloc_allocated): Support
        * finalization.
        (structure_alloc_comps): Update caller.
        (gfc_trans_deferred_array): Call finalizer.
        * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
        * trans-decl.c (gfc_trans_deferred_vars): Don't
        * deallocate/finalize
        variables of the main program.
        * trans-expr.c (gfc_conv_procedure_call): Support finalization.
        * trans-openmp.c (gfc_omp_clause_dtor,
        gfc_trans_omp_array_reduction): Update calls.
        * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
        of alloc components.
        * trans.c (gfc_add_finalizer_call): New function.
        (gfc_deallocate_with_status,
        gfc_deallocate_scalar_with_status): Call it
        (gfc_build_final_call): Fix handling of scalar coarrays,
        move up in the file and make static.

2013-06-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/37336
        * gfortran.dg/finalize_12.f90: New.
        * gfortran.dg/alloc_comp_basics_1.f90: Add BLOCK for
        end of scope finalization.
        * gfortran.dg/alloc_comp_constructor_1.f90: Ditto.
        * gfortran.dg/allocatable_scalar_9.f90: Ditto.
        * gfortran.dg/auto_dealloc_2.f90: Ditto.
        * gfortran.dg/class_19.f03: Ditto.
        * gfortran.dg/coarray_lib_alloc_1.f90: Ditto.
        * gfortran.dg/coarray_lib_alloc_2.f90: Ditto.
        * gfortran.dg/extends_14.f03: Ditto.
        * gfortran.dg/move_alloc_4.f90: Ditto.
        * gfortran.dg/typebound_proc_27.f03: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199643 138bc75d-0d04-0410-961f-82ee72b054a4
23 files changed:
gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-array.h
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-openmp.c
gcc/fortran/trans-stmt.c
gcc/fortran/trans.c
gcc/fortran/trans.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
gcc/testsuite/gfortran.dg/alloc_comp_constructor_1.f90
gcc/testsuite/gfortran.dg/allocatable_scalar_9.f90
gcc/testsuite/gfortran.dg/auto_dealloc_2.f90
gcc/testsuite/gfortran.dg/class_19.f03
gcc/testsuite/gfortran.dg/coarray_lib_alloc_1.f90
gcc/testsuite/gfortran.dg/coarray_lib_alloc_2.f90
gcc/testsuite/gfortran.dg/extends_14.f03
gcc/testsuite/gfortran.dg/finalize_12.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/finalize_13.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/finalize_14.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/move_alloc_4.f90
gcc/testsuite/gfortran.dg/typebound_proc_27.f03