This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/31244] data initialization with more than 2**32 elements



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]