diff options
Diffstat (limited to 'lib/ReaderWriter/MachO/ShimPass.cpp')
| -rw-r--r-- | lib/ReaderWriter/MachO/ShimPass.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/ReaderWriter/MachO/ShimPass.cpp b/lib/ReaderWriter/MachO/ShimPass.cpp index df29e37c183b..cd5367146658 100644 --- a/lib/ReaderWriter/MachO/ShimPass.cpp +++ b/lib/ReaderWriter/MachO/ShimPass.cpp @@ -42,9 +42,12 @@ class ShimPass : public Pass { public: ShimPass(const MachOLinkingContext &context) : _ctx(context), _archHandler(_ctx.archHandler()), - _stubInfo(_archHandler.stubInfo()), _file("<mach-o shim pass>") {} + _stubInfo(_archHandler.stubInfo()), + _file(*_ctx.make_file<MachOFile>("<mach-o shim pass>")) { + _file.setOrdinal(_ctx.getNextOrdinalAndIncrement()); + } - std::error_code perform(SimpleFile &mergedFile) override { + llvm::Error perform(SimpleFile &mergedFile) override { // Scan all references in all atoms. for (const DefinedAtom *atom : mergedFile.defined()) { for (const Reference *ref : *atom) { @@ -63,7 +66,7 @@ public: } // Exit early if no shims needed. if (_targetToShim.empty()) - return std::error_code(); + return llvm::Error(); // Sort shim atoms so the layout order is stable. std::vector<const DefinedAtom *> shims; @@ -80,7 +83,7 @@ public: for (const DefinedAtom *shim : shims) mergedFile.addAtom(*shim); - return std::error_code(); + return llvm::Error(); } private: @@ -112,7 +115,7 @@ private: const MachOLinkingContext &_ctx; mach_o::ArchHandler &_archHandler; const ArchHandler::StubInfo &_stubInfo; - MachOFile _file; + MachOFile &_file; llvm::DenseMap<const Atom*, const DefinedAtom*> _targetToShim; }; |
