[Patch, fortran] PR87151 - allocating array of character

Paul Richard Thomas paul.richard.thomas@gmail.com
Mon Oct 8 13:36:00 GMT 2018


Hi Dominique,

Thanks for the testing. Although the tests for PR80931 and PR83196,
comment #4, compiled OK, when I attempted to use the modules both
segfaulted for the same reason ('span' not being set on the array
descriptor) and these required a slightly different version of the
same tweak.

The attached regtests fine on FC28/x86_64 - OK for trunk and later for 8-branch?

Cheers

Paul

2018-10-07  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/87151
    * trans-array.c (gfc_get_array_span): Deal with deferred char
    array components having a TYPE_MAX_VALUE of zero.
    (gfc_array_init_size): Use the hidden string length component
    to build the descriptor dtype.
    (gfc_array_allocate): Remove the erroneous replacement of the
    charlen backend decl with a temporary.
    (gfc_conv_expr_descriptor): Use the ss_info string length in
    the case of deferred character components.
    (gfc_alloc_allocatable_for_assignment): Actually compare the
    string lengths for deferred characters. Make sure that kind > 1
    is handled correctly. Set the span field of the descriptor.
    * trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid
    comment.

    PR fortran/80931
    * trans-array.c (gfc_array_allocate): Set the span field for
    variable length character arrays.


2018-10-07  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/87151
    * gfortran.dg/deferred_type_component_3.f90: New test.

    PR fortran/80931
    * gfortran.dg/deferred_character_28.f90: New test.
    * gfortran.dg/deferred_character_29.f90: New test (note that
    this test appears in PR83196 comment #4 by mistake).

On Mon, 8 Oct 2018 at 10:08, Dominique d'Humières <dominiq@lps.ens.fr> wrote:
>
> Hi Paul,
>
> Your patch works as expected. It also fixes the ICEs for the tests in pr80931
> (and the test accidentally attached to pr83196).
>
> Thanks for the patch.
>
> Dominique
>


-- 
"If you can't explain it simply, you don't understand it well enough"
- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: submit.diff
Type: text/x-patch
Size: 19949 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20181008/d0bec770/attachment.bin>


More information about the Gcc-patches mailing list