This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Compare addresses in operand_equal_p correctly
- From: Andrew Haley <aph at redhat dot com>
- To: Roger Sayle <roger at eyesopen dot com>
- Cc: Richard Sandiford <richard at codesourcery dot com>, Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>, <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 14 Nov 2006 17:36:19 +0000
- Subject: Re: [patch] Compare addresses in operand_equal_p correctly
- References: <17753.63600.420723.50857@zebedee.pink> <Pine.LNX.4.44.0611140925460.1659-100000@www.eyesopen.com>
Roger Sayle writes:
>
> On Tue, 14 Nov 2006, Andrew Haley wrote:
> > Insert extra parentheses so that Emacs will indent the code
> > properly. For example, the following indentation looks nice if you do
> > it by hand,
> >
> > v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
> > + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000;
> >
> > but Emacs would alter it. Adding a set of parentheses produces
> > something that looks equally nice, and which Emacs will preserve:
> >
> > v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
> > + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000);
>
> I believe that this is to prevent *always* aligning equal operators
> under one another, when there's a good aesthetic reason, otherwise
> this ends up as:
>
> v = rup->ru_utime.tv_sec*1000
> + rup->ru_utime.tv_usec/1000
> + rup->ru_stime.tv_sec*1000
> + rup->ru_stime.tv_usec/1000;
>
> which is OK, but hides the utime/tv_sec/tv_usec symmetry.
The original example was
return (OP_SAME (0)
&& OP_SAME (1)
&& OP_SAME_WITH_NULL (2)
&& OP_SAME_WITH_NULL (3));
which needs the parens lest it be turned into
return OP_SAME (0)
&& OP_SAME (1)
&& OP_SAME_WITH_NULL (2)
&& OP_SAME_WITH_NULL (3);
Andrew.