On 12/30/24 12:34 AM, Paul Richard Thomas wrote:
Hi Jerry,

With such an illustrious group of contributors, I can hardly say 'no', can I? :-)

It looks fine to me - OK for trunk.

Regards

Paul


Thanks Paul. Special thanks to Steve for taking this on.

commit efc0981077a70c4de4596f682c4aeade07ec2f17 (HEAD -> master, origin/master, origin/HEAD)
Author: Steven G. Kargl <kar...@comcast.net>
Date:   Sun Dec 29 14:19:18 2024 -0800

    Fortran: Implement f_c_string function.



On Sun, 29 Dec 2024 at 23:10, Jerry D <jvdelis...@gmail.com <mailto:jvdelis...@gmail.com>> wrote:

    Attached is the revised patch incorporating handling of optional
    arguments of a calling procedure and simplified checking for C
    interoperability.

    See the PR for much discussion.

    Regression tested on x86_64_linux_gnu.

    Two test cases.

    OK for trunk?

    Author: Steven G. Kargl <kar...@comcast.net <mailto:kar...@comcast.net>>
    Date:   Sun Dec 29 14:19:18 2024 -0800

          Fortran: Implement f_c_string function.

          Fortran 2023 has added the new intrinsic function F_C_STRING to
          convert fortran strings of default character kind to a null
          terminated C string.

          Contributions from Steve Kargl, Harald Anlauf, FX Coudert,
          Mikael Morin, and Jerry DeLisle.

             PR fortran/117643

          gcc/fortran/ChangeLog:

            * check.cc (gfc_check_f_c_string): Check arguments of
             f_c_string().
            * gfortran.h (enum gfc_isym_id): New symbol GFC_ISYM_F_C_STRING.
            * intrinsic.cc (add_functions): Add the ISO C Binding
             routine f_c_string(). Wrap nearby long line to less
             than 80 characters.
            * intrinsic.h (gfc_check_f_c_string): Prototype for
             gfc_check_f_c_string().
            * iso-c-binding.def (NAMED_FUNCTION): Declare for ISO C
             Binding routine f_c_string().
            * primary.cc (gfc_match_rvalue): Fix comment that has
             been untrue since 2011. Add ISOCBINDING_F_C_STRING
             to conditional.
            * trans-intrinsic.cc (conv_trim): Specialized version
             of trim() for f_c_string().
             (gfc_conv_intrinsic_function): Use GFC_ISYM_F_C_STRING
             to trigger in-lining.

          gcc/testsuite/ChangeLog:

            * gfortran.dg/f_c_string1.f90: New test.
            * gfortran.dg/f_c_string2.f90: New test.


Reply via email to