-
- Downloads
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.
Showing
- gcc/fortran/check.cc 36 additions, 0 deletionsgcc/fortran/check.cc
- gcc/fortran/gfortran.h 1 addition, 0 deletionsgcc/fortran/gfortran.h
- gcc/fortran/intrinsic.cc 10 additions, 1 deletiongcc/fortran/intrinsic.cc
- gcc/fortran/intrinsic.h 1 addition, 0 deletionsgcc/fortran/intrinsic.h
- gcc/fortran/iso-c-binding.def 3 additions, 0 deletionsgcc/fortran/iso-c-binding.def
- gcc/fortran/primary.cc 2 additions, 3 deletionsgcc/fortran/primary.cc
- gcc/fortran/trans-intrinsic.cc 177 additions, 5 deletionsgcc/fortran/trans-intrinsic.cc
- gcc/testsuite/gfortran.dg/f_c_string1.f90 49 additions, 0 deletionsgcc/testsuite/gfortran.dg/f_c_string1.f90
- gcc/testsuite/gfortran.dg/f_c_string2.f90 50 additions, 0 deletionsgcc/testsuite/gfortran.dg/f_c_string2.f90
Loading
Please register or sign in to comment