https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99307

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Paul Thomas <pa...@gcc.gnu.org>:

https://gcc.gnu.org/g:9a0e09f3dd5339bb18cc47317f2298d9157ced29

commit r11-8187-g9a0e09f3dd5339bb18cc47317f2298d9157ced29
Author: Paul Thomas <pa...@gcc.gnu.org>
Date:   Thu Apr 15 07:34:26 2021 +0100

    Fortran: Fix class reallocate on assignment [PR99307].

    2021-04-15  Paul Thomas  <pa...@gcc.gnu.org>

    gcc/fortran
            PR fortran/99307
            * symbol.c: Remove trailing white space.
            * trans-array.c (gfc_trans_create_temp_array): Create a class
            temporary for class expressions and assign the new descriptor
            to the data field.
            (build_class_array_ref): If the class expr can be extracted,
            then use that for 'decl'. Class function results are reliably
            handled this way. Call gfc_find_and_cut_at_last_class_ref to
            eliminate largely redundant code. Remove dead code and recast
            the rest of the code to extract 'decl' for remaining cases.
            Call gfc_build_spanned_array_ref.
            (gfc_alloc_allocatable_for_assignment): Use class descriptor
            element length for 'elemsize1'. Eliminate repeat set of dtype
            for class expressions.
            * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include
            additional code from build_class_array_ref, and use optional
            gfc_typespec pointer argument.
            (gfc_trans_scalar_assign): Make use of pre and post blocks for
            all class expressions.
            * trans.c (get_array_span): For unlimited polymorphic exprs
            multiply the span by the value of the _len field.
            (gfc_build_spanned_array_ref): New function.
            (gfc_build_array_ref): Call gfc_build_spanned_array_ref and
            eliminate repeated code.
            * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and
            add prototype for gfc_build_spanned_array_ref.
  • [Bug fortran/99307] FAIL: gfort... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to