[lld] r299511 - Simplify. NFC.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 5 12:13:41 PDT 2017


On Wed, Apr 5, 2017 at 8:38 AM, Davide Italiano <davide at freebsd.org> wrote:

> On Tue, Apr 4, 2017 at 10:55 PM, Rui Ueyama <ruiu at google.com> wrote:
> > On Tue, Apr 4, 2017 at 10:23 PM, Davide Italiano <davide at freebsd.org>
> wrote:
> >>
> >> On Tue, Apr 4, 2017 at 10:06 PM, Rui Ueyama via llvm-commits
> >> <llvm-commits at lists.llvm.org> wrote:
> >> > Author: ruiu
> >> > Date: Wed Apr  5 00:06:17 2017
> >> > New Revision: 299511
> >> >
> >> > URL: http://llvm.org/viewvc/llvm-project?rev=299511&view=rev
> >> > Log:
> >> > Simplify. NFC.
> >> >
> >> > A for-loop is more boring than a find_if, but I think this is easier
> to
> >> > read.
> >> >
> >> > Modified:
> >> >     lld/trunk/ELF/LinkerScript.cpp
> >> >
> >> > Modified: lld/trunk/ELF/LinkerScript.cpp
> >> > URL:
> >> > http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/
> LinkerScript.cpp?rev=299511&r1=299510&r2=299511&view=diff
> >> >
> >> > ============================================================
> ==================
> >> > --- lld/trunk/ELF/LinkerScript.cpp (original)
> >> > +++ lld/trunk/ELF/LinkerScript.cpp Wed Apr  5 00:06:17 2017
> >> > @@ -923,10 +923,12 @@ std::vector<PhdrEntry> LinkerScript::cre
> >> >  bool LinkerScript::ignoreInterpSection() {
> >> >    // Ignore .interp section in case we have PHDRS specification
> >> >    // and PT_INTERP isn't listed.
> >> > -  return !Opt.PhdrsCommands.empty() &&
> >> > -         llvm::find_if(Opt.PhdrsCommands, [](const PhdrsCommand
> &Cmd) {
> >> > -           return Cmd.Type == PT_INTERP;
> >> > -         }) == Opt.PhdrsCommands.end();
> >> > +  if (Opt.PhdrsCommands.empty())
> >> > +    return false;
> >> > +  for (PhdrsCommand &Cmd : Opt.PhdrsCommands)
> >> > +    if (Cmd.Type == PT_INTERP)
> >> > +      return false;
> >> > +  return true;
> >> >  }
> >> >
> >>
> >> Maybe the `find_if` construct was too obscure, but now that you split
> >> the first `if` out, you may consider replacing the phdrs command loop
> >> with `all_of`, which I think it's an improvement in readability. I
> >> don't feel strong about it tho, up to you.
> >
> >
> > You still need to use `find_if` instead of `all_of`, no?
>
> I don't think you need `find_if` (unless I'm reading the code wrong,
> which could be possible). I originally thought you needed to check
> universality while you need non-existence, so none_of is what you
>  want.
>
> diff --git a/ELF/LinkerScript.cpp b/ELF/LinkerScript.cpp
> index 924a0f3..22073c8 100644
> --- a/ELF/LinkerScript.cpp
> +++ b/ELF/LinkerScript.cpp
> @@ -859,10 +859,8 @@ bool LinkerScript::ignoreInterpSection() {
>    // and PT_INTERP isn't listed.
>    if (Opt.PhdrsCommands.empty())
>      return false;
> -  for (PhdrsCommand &Cmd : Opt.PhdrsCommands)
> -    if (Cmd.Type == PT_INTERP)
> -      return false;
> -  return true;
> +  return llvm::none_of(Opt.PhdrsCommands,
> +                       [](PhdrsCommand &Cmd) { return Cmd.Type ==
> PT_INTERP; });
>  }
>

Ah. But I think I'd still prefer the for-loop version, although it's not a
strong preference.

 uint32_t LinkerScript::getFiller(StringRef Name) {
>
>
> --
> Davide
>
> "There are no solved problems; there are only problems that are more
> or less solved" -- Henri Poincare
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170405/a4308ce8/attachment.html>


More information about the llvm-commits mailing list