------- Comment #3 from sgk at troutmask dot apl dot washington dot edu
2007-09-18 19:16 -------
Subject: Re: data initialization with more than 2**32 elements
On Tue, Sep 18, 2007 at 06:02:03PM -0000, sgk at troutmask dot apl dot
washington dot edu wrote:
> >
> > The problem is found in decl.c(top_val_list) at lines 404-411, which
> > are
> >
> > signed int tmp;
> > msg = gfc_extract_int (expr, &tmp);
> > gfc_free_expr (expr);
> > if (msg != NULL)
> > {
> > gfc_error (msg);
> > return MATCH_ERROR;
> > }
> >
> > gfc_extract_int is trying to put 4294967296_8 into a signed int.
> > This probably needs to be changed to accommodate the type of
> > an array index.
>
Ugh. I have a patch that would allow a repeat count of
2**32-1. For this program:
program main
integer(kind=1), dimension(4294967294_8) :: i
data i /4294967294_8 * 1_1/
print *,i(1)
end program main
and 'gfc4x -o z -O p.f90', I see
51879 sgk 1 121 0 554M 554M RUN 1 5:48 92.24% as
in top(1). Do we really want to support this large of a repeat count?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31244