diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2021-12-26 20:18:01 +0100 |
---|---|---|
committer | Francois-Xavier Coudert <fxcoudert@gmail.com> | 2021-12-28 23:27:48 +0100 |
commit | 906b4e15ce84790c7657405238d61358e0893676 (patch) | |
tree | 17a80e1edc78ee4a0c647e91bfd76c0e3f8bf232 /gcc/jit | |
parent | db25655fa5dd23bba684ec7db628643c19e64d6a (diff) | |
download | gcc-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