------- 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