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

--- Comment #21 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Paul Thomas <pa...@gcc.gnu.org>:

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

commit r15-9328-gee65440cbd8042a5e5885e18bde70f8d530e4404
Author: Paul Thomas <pa...@gcc.gnu.org>
Date:   Wed Apr 9 09:50:04 2025 +0100

    Fortran:  Fix some problems with the reduce intrinsic [PR119460]

    2025-04-09  Paul Thomas  <pa...@gcc.gnu.org>
                and Harald Anlauf  <anl...@gcc.gnu.org>

    gcc/fortran
            PR fortran/119460
            * iresolve.cc (generate_reduce_op_wrapper): Increase the size
            of 'tname'. Change intent of 'a' and 'b' to intent_in.
            * trans-decl.cc (add_argument_checking): Do not test artificial
            formal symbols.
            * trans-expr.cc (gfc_conv_procedure_call): Remove reduce_scalar
            and the blocks triggered by it.
            * trans-intrinsic.cc (gfc_conv_intrinsic_function): Set the
            result of non-character, scalar reduce to be allocatable.

    gcc/testsuite/
            PR fortran/119460
            * gfortran.dg/reduce_2.f90: Add test to check that deferred len
            characters cannot slip through.
            * gfortran.dg/reduce_3.f90: New test
            * gfortran.dg/reduce_4.f90: New test

    libgfortran/
            PR libfortran/119460
            * intrinsics/reduce.c (reduce): Correct error message about
            mismatch between dim and the rank of array. Output the values
            of both. Correct the evaluation of the result stride and
            extent.
            (reduce_scalar): The front end treats the result as an
            allocatable so eliminate memcpy and free. Return the base-addr
            of the local descriptor.
            (reduce_c): Correct the type of the string lengths.
            (reduce_scalar_c): Correct the type of the string lengths.Test
            to see if 'res' is allocated. If not then return the base_addr
            of the local descriptor.

Reply via email to