https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110618

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Mikael Morin <mik...@gcc.gnu.org>:

https://gcc.gnu.org/g:e21e13e2525a042a0aabfbcb4ebf4f08609078c7

commit r14-2580-ge21e13e2525a042a0aabfbcb4ebf4f08609078c7
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Mon Jul 17 14:14:22 2023 +0200

    fortran: Pass pre-calculated class container argument [pr110618]

    Pass already evaluated class container argument from
    gfc_conv_procedure_call down to gfc_add_finalizer_call through
    gfc_deallocate_scalar_with_status and gfc_deallocate_with_status,
    to avoid repeatedly evaluating the same data reference expressions
    in the generated code.

            PR fortran/110618

    gcc/fortran/ChangeLog:

            * trans.h (gfc_deallocate_with_status): Add class container
            argument.
            (gfc_deallocate_scalar_with_status): Ditto.
            * trans.cc (gfc_deallocate_with_status): Add class container
            argument and pass it down to gfc_add_finalize_call.
            (gfc_deallocate_scalar_with_status): Same.
            * trans-array.cc (structure_alloc_comps): Update caller.
            * trans-stmt.cc (gfc_trans_deallocate): Ditto.
            * trans-expr.cc (gfc_conv_procedure_call): Ditto.  Pass
            pre-evaluated class container argument if it's available.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/intent_out_22.f90: New test.

Reply via email to