This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/31244] data initialization with more than 2**32 elements
- From: "sgk at troutmask dot apl dot washington dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Sep 2007 19:16:42 -0000
- Subject: [Bug fortran/31244] data initialization with more than 2**32 elements
- References: <bug-31244-10391@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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