This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[will committ] i686 bootstrap failure in revision 110699: looping in (fwd)
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 8 Feb 2006 15:17:13 -0500 (EST)
- Subject: [will committ] i686 bootstrap failure in revision 110699: looping in (fwd)
I almost forgot to send it to gcc-patches@.
-- Pinski
> > On Wed, 2006-02-08 at 12:28 -0500, Andrew Pinski wrote:
> > > >
> > > > I've build in a unified (symlink) tree, with sourceware stuff checked
> > > > out via cvs from date/time D2006.02.07.17.00.00
> > >
> > > I am reducing this failure and will file a bug report.
> > >
> >
> > This failure is actually a latent bug elsewhere in marking statements
> > annotations with volatile ops
> >
> > PRE doesn't touch statements that contain volatile operations because
> > operand_equal_p claims two volatile operands are different, even if they
> > look the same (which is the underlying cause of your infinite loop. We
> > keep thinking we've generated new values because the hash lookup never
> > finds the old ones because operand_equal_p returns false)
> >
> > All the other statements related to your volatile expressions have
> > stmt_ann (stmt)->has_volatile_ops set to 1.
> >
> > yet
> >
> > (gdb) p ann->has_volatile_ops
> > $18 = 0
> > :(
>
> I have a patch which is testing right now and I will apply it as pre-approved
> (by Diego) once it has finishing testing.
>
> Thanks,
> Andrew Pinski
>
>
> ChangeLog:
>
> * tree-flow-inline.h (var_can_have_subvars):
> Volatile variables should not have subvariables.
>
>
>
> --%--multipart-mixed-boundary-1.25496.1139429690--%
> Content-Type: text/plain
> Content-Transfer-Encoding: 7bit
> Content-Description: ASCII C program text
> Content-Disposition: attachment; filename="fixvolatile.diff.txt"
>
> Index: tree-flow-inline.h
> ===================================================================
> --- tree-flow-inline.h (revision 110761)
> +++ tree-flow-inline.h (working copy)
> @@ -1463,6 +1463,11 @@ get_subvar_at (tree var, unsigned HOST_W
> static inline bool
> var_can_have_subvars (tree v)
> {
> +
> + /* Volatile variables should never have subvars. */
> + if (TREE_THIS_VOLATILE (v))
> + return false;
> +
> /* Non decls or memory tags can never have subvars. */
> if (!DECL_P (v) || MTAG_P (v))
> return false;
>
> --%--multipart-mixed-boundary-1.25496.1139429690--%--
>