This is the mail archive of the gcc@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]

Re: GCC 4.0.2 RC2


On 9/19/05, Paolo Bonzini <paolo.bonzini@lu.unisi.ch> wrote:
> 
> >  I applied the patch by hand (not working with CVS) and it
> > does _not_ solve the problem.
> >
> In this case, I am sorry but the probability of a fix before the release
> is close to zero.

The problem with 4.0 is that it behaves completely different in this case
and the fix at expand time is too late.  After gimplification we already have

sub (i)
{
  static int C.0[1000000] = {0};
  unsigned int i.1;
  unsigned int D.1136;
  int * D.1137;
  int * D.1138;
  int array[1000000];

  array = C.0;
  i.1 = (unsigned int) i;
  D.1136 = i.1 * 4;
  D.1137 = (int *) D.1136;
  D.1138 = &array + D.1137;
  sub2 (D.1138);
}

While for 4.1 we get

sub (i)
{
  unsigned int i.0;
  unsigned int D.1282;
  int * D.1283;
  int * D.1284;
  int array[1000000];

  array = {};
  i.0 = (unsigned int) i;
  D.1282 = i.0 * 4;
  D.1283 = (int *) D.1282;
  D.1284 = &array + D.1283;
  sub2 (D.1284);
}

which is fine.


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