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 On Sun, 29 Dec 2024 at 23:10, Jerry D <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> > 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. >