aboutsummaryrefslogtreecommitdiff
path: root/gcc/jit
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2021-12-26 20:18:01 +0100
committerFrancois-Xavier Coudert <fxcoudert@gmail.com>2021-12-28 23:27:48 +0100
commit906b4e15ce84790c7657405238d61358e0893676 (patch)
tree17a80e1edc78ee4a0c647e91bfd76c0e3f8bf232 /gcc/jit
parentdb25655fa5dd23bba684ec7db628643c19e64d6a (diff)
downloadgcc-906b4e15ce84790c7657405238d61358e0893676.zip
gcc-906b4e15ce84790c7657405238d61358e0893676.tar.gz
gcc-906b4e15ce84790c7657405238d61358e0893676.tar.bz2
Fortran: Emit correct types for CHARACTER(C_CHAR), VALUE arguments
Make the front-end emit the right type for CHARACTER(C_CHAR), VALUE arguments to BIND(C) procedures. They are scalar integers of C type char, and should be emitted as such. They are not strings or arrays, and are not promoted to C int, either. gcc/fortran/ChangeLog: PR fortran/103828 * trans-decl.c (generate_local_decl): Do not call gfc_conv_scalar_char_value(), but check the type tree. * trans-expr.c (gfc_conv_scalar_char_value): Rename to conv_scalar_char_value, do not alter type tree. (gfc_conv_procedure_call): Adjust call to renamed conv_scalar_char_value() function. * trans-types.c (gfc_sym_type): Take care of CHARACTER(C_CHAR), VALUE arguments. * trans.h (gfc_conv_scalar_char_value): Remove prototype. gcc/testsuite/ChangeLog: PR fortran/103828 * gfortran.dg/c_char_tests_3.f90: New file. * gfortran.dg/c_char_tests_3_c.c: New file. * gfortran.dg/c_char_tests_4.f90: New file. * gfortran.dg/c_char_tests_5.f90: New file.
Diffstat (limited to 'gcc/jit')
0 files changed, 0 insertions, 0 deletions