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. :( -- Steve