<div dir="ltr">Nice clean-up. Thanks very much!<div><br></div><div>- Lang.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 4, 2016 at 12:56 PM, Davide Italiano via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: davide<br>
Date: Thu Aug  4 14:56:26 2016<br>
New Revision: 277761<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=277761&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=277761&view=rev</a><br>
Log:<br>
[MachO] Factor out some common code in the Driver.<br>
<br>
Modified:<br>
    lld/trunk/lib/Driver/<wbr>DarwinLdDriver.cpp<br>
<br>
Modified: lld/trunk/lib/Driver/<wbr>DarwinLdDriver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/DarwinLdDriver.cpp?rev=277761&r1=277760&r2=277761&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/lib/Driver/<wbr>DarwinLdDriver.cpp?rev=277761&<wbr>r1=277760&r2=277761&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/lib/Driver/<wbr>DarwinLdDriver.cpp (original)<br>
+++ lld/trunk/lib/Driver/<wbr>DarwinLdDriver.cpp Thu Aug  4 14:56:26 2016<br>
@@ -1137,6 +1137,18 @@ bool parse(llvm::ArrayRef<const char *><br>
   return ctx.validate(diagnostics);<br>
 }<br>
<br>
+static void createFiles(<wbr>MachOLinkingContext &ctx, bool Implicit) {<br>
+  std::vector<std::unique_ptr<<wbr>File>> Files;<br>
+  if (Implicit)<br>
+    ctx.createImplicitFiles(Files)<wbr>;<br>
+  else<br>
+    ctx.createInternalFiles(Files)<wbr>;<br>
+  for (auto i = Files.rbegin(), e = Files.rend(); i != e; ++i) {<br>
+    auto &members = ctx.getNodes();<br>
+    members.insert(members.begin()<wbr>, llvm::make_unique<FileNode>(<wbr>std::move(*i)));<br>
+  }<br>
+}<br>
+<br>
 /// This is where the link is actually performed.<br>
 bool link(llvm::ArrayRef<const char *> args, raw_ostream &diagnostics) {<br>
   MachOLinkingContext ctx;<br>
@@ -1151,20 +1163,10 @@ bool link(llvm::ArrayRef<const char *> a<br>
     if (FileNode *node = dyn_cast<FileNode>(ie.get()))<br>
       node->getFile()->parse();<br>
<br>
-  std::vector<std::unique_ptr<<wbr>File>> internalFiles;<br>
-  ctx.createInternalFiles(<wbr>internalFiles);<br>
-  for (auto i = internalFiles.rbegin(), e = internalFiles.rend(); i != e; ++i) {<br>
-    auto &members = ctx.getNodes();<br>
-    members.insert(members.begin()<wbr>, llvm::make_unique<FileNode>(<wbr>std::move(*i)));<br>
-  }<br>
+  createFiles(ctx, false /* Implicit */);<br>
<br>
-  // Give target a chance to add files.<br>
-  std::vector<std::unique_ptr<<wbr>File>> implicitFiles;<br>
-  ctx.createImplicitFiles(<wbr>implicitFiles);<br>
-  for (auto i = implicitFiles.rbegin(), e = implicitFiles.rend(); i != e; ++i) {<br>
-    auto &members = ctx.getNodes();<br>
-    members.insert(members.begin()<wbr>, llvm::make_unique<FileNode>(<wbr>std::move(*i)));<br>
-  }<br>
+  // Give target a chance to add files<br>
+  createFiles(ctx, true /* Implicit */);<br>
<br>
   // Give target a chance to postprocess input files.<br>
   // Mach-O uses this chance to move all object files before library files.<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>