diff options
Diffstat (limited to 'lld/lib/Driver/DarwinLdDriver.cpp')
-rw-r--r-- | lld/lib/Driver/DarwinLdDriver.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lld/lib/Driver/DarwinLdDriver.cpp b/lld/lib/Driver/DarwinLdDriver.cpp index 4a859f3d605..914c23642ac 100644 --- a/lld/lib/Driver/DarwinLdDriver.cpp +++ b/lld/lib/Driver/DarwinLdDriver.cpp @@ -1169,7 +1169,14 @@ bool link(llvm::ArrayRef<const char *> args, raw_ostream &diagnostics) { Resolver resolver(ctx); if (!resolver.resolve()) return false; - std::unique_ptr<SimpleFile> merged = resolver.resultFile(); + SimpleFile *merged = nullptr; + { + std::unique_ptr<SimpleFile> mergedFile = resolver.resultFile(); + merged = mergedFile.get(); + auto &members = ctx.getNodes(); + members.insert(members.begin(), + llvm::make_unique<FileNode>(std::move(mergedFile))); + } resolveTask.end(); // Run passes on linked atoms. |