It helps to attach the patch! On Mon, 6 May 2019 at 19:57, Paul Richard Thomas wrote: > > Unfortunately, this patch was still in the making at the release of > 9.1. It is more or less self explanatory with the ChangeLogs. > > It should be noted that gfc_conv_expr_present could not be used in the > fix for PR90093 because the passed descriptor is a CFI type. Instead, > the test is for a null pointer passed. > > The changes to trans-array.c(gfc_trans_create_temp_array) have an eye > on the future, as well as PR90355. I am progressing towards the point > where all descriptors have 'span' set correctly so that > trans.c(get_array_span) can be eliminated and much of the code in the > callers can be simplified. > > Bootstrapped and regtested on FC29/x86_64 - OK for trunk and 9-branch? > > Paul > > 2019-05-06 Paul Thomas > > PR fortran/90093 > * trans-decl.c (convert_CFI_desc): Test that the dummy is > present before doing any of the conversions. > > PR fortran/90352 > * decl.c (gfc_verify_c_interop_param): Restore the error for > charlen > 1 actual arguments passed to bind(C) procs. > Clean up trailing white space. > > PR fortran/90355 > * trans-array.c (gfc_trans_create_temp_array): Set the 'span' > field to the element length for all types. > (gfc_conv_expr_descriptor): The force_no_tmp flag is used to > prevent temporary creation, especially for substrings. > * trans-decl.c (gfc_trans_deferred_vars): Rather than assert > that the backend decl for the string length is non-null, use it > as a condition before calling gfc_trans_vla_type_sizes. > * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): 'force_no_tmp' > is set before calling gfc_conv_expr_descriptor. > * trans.c (get_array_span): Move the code for extracting 'span' > from gfc_build_array_ref to this function. This is specific to > descriptors that are component and indirect references. > * trans.h : Add the force_no_tmp flag bitfield to gfc_se. > > 2019-05-06 Paul Thomas > > PR fortran/90093 > * gfortran.dg/ISO_Fortran_binding_12.f90: New test. > * gfortran.dg/ISO_Fortran_binding_12.c: Supplementary code. > > PR fortran/90352 > * gfortran.dg/iso_c_binding_char_1.f90: New test. > > PR fortran/90355 > * gfortran.dg/ISO_Fortran_binding_4.f90: Add 'substr' to test > the direct passing of substrings as descriptors to bind(C). > * gfortran.dg/assign_10.f90: Increase the tree_dump count of > 'atmp' to account for the setting of the 'span' field. > * gfortran.dg/transpose_optimization_2.f90: Ditto.