<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>