This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/51434] ICE with scalar init of an array parameter, used in DT default init with transfer


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

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tkoenig at gcc dot gnu.org

--- Comment #16 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
This patch

> Draft patch - one probably needs to do something similar for derived types.
> 
> --- a/gcc/fortran/decl.c
> +++ b/gcc/fortran/decl.c
> @@ -1500,6 +1500,8 @@ add_init_expr_to_sym (const char *name, gfc_expr
> **initp, locus *var_locus)
>                                              &init->where);
> 
>               array->shape = gfc_get_shape (sym->as->rank);
> +             if (init->ts.type == BT_CHARACTER)
> +               array->ts.u.cl = init->ts.u.cl;
>               for (n = 0; n < sym->as->rank; n++)
>                 spec_dimen_size (sym->as, n, &array->shape[n]);

fixes the test case, but regresses 

program p
   character(1), parameter :: x1(2) = 'a'
   character(*), parameter :: x2(2) = x1
end

which is a part of pr68154.f90 .

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]