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

--- Comment #39 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:564b637f4a32883cbf3c3019d3cfcf0b0aec9b82

commit r14-3207-g564b637f4a32883cbf3c3019d3cfcf0b0aec9b82
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Mon Aug 14 21:51:54 2023 +0200

    fortran: Fix length one character dummy arg type [PR110419]

    Revision r14-2171-g8736d6b14a4dfdfb58c80ccd398981b0fb5d00aa
    changed the argument passing convention for length 1 value dummy
    arguments to pass just the single character by value.  However, the
    procedure declarations weren't updated to reflect the change in the
    argument types.
    This change does the missing argument type update.

    The change of argument types generated an internal error in
    gfc_conv_string_parameter with value_9.f90.  Indeed, that function is
    not prepared for bare character type, so it is updated as well.

    The condition guarding the single character argument passing code
    is loosened to not exclude non-interoperable kind (this fixes
    a regression with c_char_tests_2.f03).

    Finally, the constant string argument passing code is updated as well
    to extract the single char and pass it instead of passing it as
    a length one string.  As the code taking care of non-constant arguments
    was already doing this, the condition guarding it is just removed.

    With these changes, value_9.f90 passes on 32 bits big-endian powerpc.

            PR fortran/110360
            PR fortran/110419

    gcc/fortran/ChangeLog:

            * trans-types.cc (gfc_sym_type): Use a bare character type for
length
            one value character dummy arguments.
            * trans-expr.cc (gfc_conv_string_parameter): Handle single
character
            case.
            (gfc_conv_procedure_call): Don't exclude interoperable kinds
            from single character handling.  For single character dummy
arguments,
            extend the existing handling of non-constant expressions to
constant
            expressions.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/bind_c_usage_13.f03: Update tree dump patterns.

Reply via email to