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.