[Patch, fortran] PR45081 - [4.3/4.4/4.5/4.6 Regression] ICE in gfc_conv_array_initializer, at fortran/trans-array.c:4208
Steve Kargl
sgk@troutmask.apl.washington.edu
Mon Sep 20 17:56:00 GMT 2010
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?
Of course, an ICE is not a good thing and needs to be addressed.
--
Steve
More information about the Fortran
mailing list