This is the mail archive of the
mailing list for the GNU Fortran project.
Re: [Patch, fortran] PR45081 - [4.3/4.4/4.5/4.6 Regression] ICE in gfc_conv_array_initializer, at fortran/trans-array.c:4208
On Monday 20 September 2010 19:39:48 Steve Kargl wrote:
> On Mon, Sep 20, 2010 at 07:19:28PM +0200, Paul Richard Thomas wrote:
> > > While the test case succeeds, the following code still gives an ICE
> > >
> > > [macbook] f90/bug% cat pr45081_red_1.f90
> > > ?module m
> > > ? ?implicit none
> > > ? ?type t
> > > ? ? ?integer :: i
> > > ? ?end type t
> > > ? ?type(t), dimension(2), parameter :: a1 ?= (/ t(1), t(2) /)
> > > ? ?type(t), dimension(2), parameter :: c = spread ( a1(1), 1, 1 )
> > > ?end module m
> > > end
> > > [macbook] f90/bug% gfc pr45081_red_1.f90
> > > f951: internal compiler error: in gfc_conv_array_initializer, at
> > > fortran/trans-array.c:4333
> > >
> > > AFAICT the code is valid (if not, it should not give an ICE). Unless
> > > you have an obvious fix,
> > I have just realised that the code is not valid; the shape of the
> > result is (1,2). If you change the dimension of c accordingly, the
> > example compiles.
> > What is wrong is that this is not diagnosed.
> Is it detected with -fcheck=bounds?
It is a parameter, so there is no run-time assignment.