diff options
Diffstat (limited to 'ELF/InputFiles.h')
| -rw-r--r-- | ELF/InputFiles.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ELF/InputFiles.h b/ELF/InputFiles.h index d0a45a4a98cf..6daf26649859 100644 --- a/ELF/InputFiles.h +++ b/ELF/InputFiles.h @@ -219,7 +219,11 @@ private: // archive file semantics. class LazyObjectFile : public InputFile { public: - explicit LazyObjectFile(MemoryBufferRef M) : InputFile(LazyObjectKind, M) {} + LazyObjectFile(MemoryBufferRef M, StringRef ArchiveName, + uint64_t OffsetInArchive) + : InputFile(LazyObjectKind, M), OffsetInArchive(OffsetInArchive) { + this->ArchiveName = ArchiveName; + } static bool classof(const InputFile *F) { return F->kind() == LazyObjectKind; @@ -227,6 +231,7 @@ public: template <class ELFT> void parse(); MemoryBufferRef getBuffer(); + InputFile *fetch(); private: std::vector<StringRef> getSymbols(); @@ -234,12 +239,13 @@ private: std::vector<StringRef> getBitcodeSymbols(); bool Seen = false; + uint64_t OffsetInArchive; }; // An ArchiveFile object represents a .a file. class ArchiveFile : public InputFile { public: - explicit ArchiveFile(MemoryBufferRef M) : InputFile(ArchiveKind, M) {} + explicit ArchiveFile(std::unique_ptr<Archive> &&File); static bool classof(const InputFile *F) { return F->kind() == ArchiveKind; } template <class ELFT> void parse(); |
