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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Andre Vehreschild <ve...@gcc.gnu.org>:

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

commit r15-2935-gdbf4c574b92bc692a0380a2b5ee25028321e735f
Author: Andre Vehreschild <ve...@gcc.gnu.org>
Date:   Wed Jul 24 09:39:45 2024 +0200

    Fix Coarray in associate not a coarray. [PR110033]

    A coarray used in an associate did not become a coarray in the block of
    the associate.  This patch fixes that and the same also in select type
    statements.

            PR fortran/110033

    gcc/fortran/ChangeLog:

            * class.cc (gfc_is_class_scalar_expr): Coarray refs that ref
            only self, aka this image, are regarded as scalar, too.
            * resolve.cc (resolve_assoc_var): Ignore this image coarray refs
            and do not build a new class type.
            * trans-expr.cc (gfc_get_caf_token_offset): Get the caf token
            from the descriptor for associated variables.
            (gfc_conv_variable): Same.
            (gfc_trans_pointer_assignment): Assign token to temporary
            associate variable, too.
            (gfc_trans_scalar_assign): Add flag that assign is for associate
            and use it to assign the token.
            (is_assoc_assign): Detect that expressions are for associate
            assign.
            (gfc_trans_assignment_1): Treat associate assigns like pointer
            assignments where possible.
            * trans-stmt.cc (trans_associate_var): Set same_class only for
            class-targets.
            * trans.h (gfc_trans_scalar_assign): Add flag to
            trans_scalar_assign for marking associate assignments.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/coarray/associate_1.f90: New test.

Reply via email to