This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 4.0.2 RC2
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- Cc: Etienne Lorrain <etienne_lorrain at yahoo dot fr>, GCC Development <gcc at gcc dot gnu dot org>, mark at codesourcery dot com
- Date: Mon, 19 Sep 2005 15:32:49 +0200
- Subject: Re: GCC 4.0.2 RC2
- References: <20050919125814.80087.qmail@web26910.mail.ukl.yahoo.com> <432EB692.2070902@lu.unisi.ch>
- Reply-to: richard dot guenther at gmail dot com
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.