[PATCH] PR fortran/59910 -- structure constructor in DATA statement
Steve Kargl
sgk@troutmask.apl.washington.edu
Wed Nov 18 01:01:00 GMT 2015
On Tue, Nov 17, 2015 at 04:36:01PM -0800, Steve Kargl wrote:
> On Wed, Nov 18, 2015 at 12:24:29AM +0100, Dominique d'Humières wrote:
> > > ??? but I suspect gfc_reduce_init_expr()
> > > may be useful for PARAMETER statements as well (need to
> > > check this!).
> >
> > As in the following test
> >
> > module m
> > implicit none
> > type t
> > integer :: i
> > end type t
> > type(t), dimension(2), parameter :: a1 = (/ t(1), t(2) /)
> > type(t), dimension(1), parameter :: c = spread ( a1(1), 1, 1 )
> > end module m
> >
>
> Yep. We again arrive at gfc_conv_array_initializer with
> expr->expr_type == EXPR_FUNCTION, which isn't handled correctly.
>
> The issue seems deeply rooted in the handling of derived types,
> which is actually worse than this! But, that is definitely for
> another day. See PR67817. :(
>
Ugh. gfc_simplify_spread does not actually the use of SPREAD
here, because source->expr_type == EXPR_STRUCTURE which is not
handled.
--
Steve
More information about the Fortran
mailing list