https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88247
--- Comment #5 from Paul Thomas <pault at gcc dot gnu.org> --- Author: pault Date: Wed Mar 27 12:51:43 2019 New Revision: 269962 URL: https://gcc.gnu.org/viewcvs?rev=269962&root=gcc&view=rev Log: 2019-03-27 Paul Thomas <pa...@gcc.gnu.org> PR fortran/88247 * expr.c (is_subref_array): Permit substrings to be detected as subref arrays. * trans-array.c (get_array_ctor_var_strlen): Obtain the length of deferred length strings. Handle substrings with a NULL end expression. (trans_array_constructor): Remove an unnecessary blank line. (gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl' is a pointer array. (get_array_charlen): If the expression is an array, convert the first element of the constructor and use its string length. Get a new charlen if necessary. (gfc_conv_expr_descriptor): Call 'get_array_charlen' for array constructor expressions. If the ss_info string length is available, use that to set the span of character arrays. * trans-expr.c (gfc_get_expr_charlen): Handle substrings * trans-stmt.c (trans_associate_var): Set the pointer array flag for variable targets and constant array constructors. Take care not to reset the string length or the span in the case of expressions that are not converted as direct by reference. 2019-03-27 Paul Thomas <pa...@gcc.gnu.org> PR fortran/88247 * gfortran.dg/associate_47.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/associate_47.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/expr.c trunk/gcc/fortran/trans-array.c trunk/gcc/fortran/trans-expr.c trunk/gcc/fortran/trans-stmt.c trunk/gcc/testsuite/ChangeLog