initialized out.clauses in read_predicate

Jan Hubicka hubicka@ucw.cz
Mon Jun 6 14:11:00 GMT 2011


> On May 30, 2011, Alexandre Oliva <aoliva@redhat.com> wrote:
> 
> > In an -O3 bootstrap, out.clauses are reported as uninitialized.  GCC is
> > not smart enough to realize accesses to the uninitialized members will
> > never happen.  It shouldn't be too expensive to initialize them all, so
> > this is what this patch does.  Regstrapped on x86_64-linux-gnu and
> > i686-linux-gnu.  Ok to install?
> 
> Oops, I mistakenly checked this in along with a couple of other approved
> patches, sorry.
> 
> Should I back it out, or may I leave it in?  (please :-)
> 
> > for  gcc/ChangeLog
> > from  Alexandre Oliva  <aoliva@redhat.com>
> 
> > 	* ipa-inline-analysis.c (read_predicate): Initialize all clauses.
> 
> > Index: gcc/ipa-inline-analysis.c
> > ===================================================================
> > --- gcc/ipa-inline-analysis.c.orig	2011-05-18 03:29:08.295328903 -0300
> > +++ gcc/ipa-inline-analysis.c	2011-05-18 03:29:38.187242177 -0300
> > @@ -2289,6 +2289,11 @@ read_predicate (struct lto_input_block *
> >        clause = out.clause[k++] = lto_input_uleb128 (ib);
> >      }
> >    while (clause);
> > +
> > +  /* Zero-initialize the remaining clauses in OUT.  */
> > +  while (k <= MAX_CLAUSES)
> > +    out.clause[k++] = 0;

Well, clauses is a typical zero terminated array, so I really do think the warning is bogus.
Do you at least know why we end up with that weird warning?

Honza



More information about the Gcc-patches mailing list