[Bug fortran/53296] Segfault on non-constant character array constructor containing kind spec

"cvs-commit at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53296

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jerry DeLisle <[email protected]>:

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

commit r17-2625-gf764d7111a29d8323e49a87a8321072295c73244
Author: Jerry DeLisle <[email protected]>
Date:   Tue Jul 21 09:15:50 2026 -0700

    fortran: [PR53296] Fix character array-ctor function called twice

    Avoid the redundant generated call to the pre chain when
    no_function_call is set.

    Also fix a related stack-buffer-overflow: gfc_conv_array_parameter
    wrote over the array constructor's. The specified length was to short.
    Use the explicit character type-spec length instead.

            PR fortran/53296

    gcc/fortran/ChangeLog:

            * trans-expr.cc (gfc_conv_procedure_call): Skip the redundant
            function call added to the pre chain when no_function_call is
            set and the character result length was already determined
            without running the callee.
            * trans-array.cc (gfc_conv_array_parameter): Convert an array
            constructor's explicit character type-spec length directly
            instead of using the first elements length.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/array_constructor_59.f90: New test.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.