This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Trivial cleanup
- From: Jeff Law <law at redhat dot com>
- To: Michael Matz <matz at suse dot de>
- Cc: Paolo Carlini <paolo dot carlini at oracle dot com>, Andrew MacLeod <amacleod at redhat dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 26 Sep 2013 23:03:32 -0600
- Subject: Re: [PATCH] Trivial cleanup
- Authentication-results: sourceware.org; auth=none
- References: <5243025E dot 8050101 at redhat dot com> <52430544 dot 8030005 at redhat dot com> <524305C3 dot 3050003 at oracle dot com> <5243086D dot 3030806 at redhat dot com> <alpine dot LNX dot 2 dot 00 dot 1309261605360 dot 11100 at wotan dot suse dot de>
On 09/26/2013 08:15 AM, Michael Matz wrote:
Should we consider banning dereferencing the result of a method call and
instead prefer to use a more functional interface such as Jakub has
suggested, or have the result of the method call put into a temporary
and dereference the temporary.
On Wed, 25 Sep 2013, Jeff Law wrote:
I was going to bring it up at some point too. My preference is
strongly to simply eliminate the space on methods...
Which wouldn't be so weird: in the libstdc++-v3 code we do it all the time.
Yea. I actually reviewed the libstdc++ guidelines to see where they differed
from GNU's C guidelines.
I'm strongly in favor of dropping the horizontal whitespace between the
method name and its open paren when the result is then dereferenced.
ie foo.last()->e rather than foo.last ()->e.
I'd prefer to not write in this style at all, like Jakub. If we must
absolutely have it, then I agree that the space before _empty_ parentheses
are ugly if followed by references. I.e. I'd like to see spaces before
parens as is customary, except in one case: empty parens in the middle of
expressions (which don't happen very often right now in GCC, and hence
wouldn't introduce a coding style confusion):
get.list (one)->clear ();
I'd prefer to not have further references to return values be applied,
though (as in, the parentheses should be the end of statement), which
would avoid the topic (at the expensive of having to invent names for
those temporaries, or to write trivial wrapper methods contracting several
I considered suggesting the latter. I wouldn't be a huge fan of the
unnecessary temporaries, but they may be better than the horrid
foo.last()->argh()->e->src or whatever.
Stuffing the result into a temporary does have one advantage, it
encourages us to CSE across the method calls in cases where the compiler
might not be able to do so. Of course, being humans, we'll probably
mess it up.