diff options
Diffstat (limited to 'lld/lib/ReaderWriter')
-rw-r--r-- | lld/lib/ReaderWriter/CoreLinkingContext.cpp | 5 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/ELF/Atoms.h | 7 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/Native/ReaderNative.cpp | 4 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/Native/WriterNative.cpp | 1 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/Atoms.h | 1 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp | 1 |
6 files changed, 19 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/CoreLinkingContext.cpp b/lld/lib/ReaderWriter/CoreLinkingContext.cpp index 36ec7a2ed5c..0ee4b51af92 100644 --- a/lld/lib/ReaderWriter/CoreLinkingContext.cpp +++ b/lld/lib/ReaderWriter/CoreLinkingContext.cpp @@ -63,6 +63,8 @@ public: return DefinedAtom::permR_X; } + bool isAlias() const override { return false; } + ArrayRef<uint8_t> rawContent() const override { return ArrayRef<uint8_t>(); } reference_iterator begin() const override { @@ -126,6 +128,8 @@ public: return DefinedAtom::permRW_; } + bool isAlias() const override { return false; } + ArrayRef<uint8_t> rawContent() const override { return ArrayRef<uint8_t>(); } reference_iterator begin() const override { @@ -269,3 +273,4 @@ void CoreLinkingContext::addPasses(PassManager &pm) { } Writer &CoreLinkingContext::writer() const { return *_writer; } + diff --git a/lld/lib/ReaderWriter/ELF/Atoms.h b/lld/lib/ReaderWriter/ELF/Atoms.h index 81d1c7ee6f3..6fec07c18e8 100644 --- a/lld/lib/ReaderWriter/ELF/Atoms.h +++ b/lld/lib/ReaderWriter/ELF/Atoms.h @@ -381,6 +381,9 @@ public: } } + // FIXME: Not Sure if ELF supports alias atoms. Find out more. + bool isAlias() const override { return false; } + ArrayRef<uint8_t> rawContent() const override { return _contentData; } DefinedAtom::reference_iterator begin() const override { @@ -484,6 +487,8 @@ public: virtual bool isThumb() const { return false; } + bool isAlias() const override { return false; } + ArrayRef<uint8_t> rawContent() const override { return _contentData; } DefinedAtom::reference_iterator begin() const override { @@ -566,6 +571,8 @@ public: ContentPermissions permissions() const override { return permRW_; } + bool isAlias() const override { return false; } + ArrayRef<uint8_t> rawContent() const override { return ArrayRef<uint8_t>(); } DefinedAtom::reference_iterator begin() const override { diff --git a/lld/lib/ReaderWriter/Native/ReaderNative.cpp b/lld/lib/ReaderWriter/Native/ReaderNative.cpp index 9b8a749aee2..f338e81ea95 100644 --- a/lld/lib/ReaderWriter/Native/ReaderNative.cpp +++ b/lld/lib/ReaderWriter/Native/ReaderNative.cpp @@ -98,6 +98,10 @@ public: return (DefinedAtom::ContentPermissions)(attributes().permissions); } + bool isAlias() const override { + return (attributes().alias != 0); + } + ArrayRef<uint8_t> rawContent() const override; reference_iterator begin() const override; diff --git a/lld/lib/ReaderWriter/Native/WriterNative.cpp b/lld/lib/ReaderWriter/Native/WriterNative.cpp index 80f50e866f4..5d56c7a295e 100644 --- a/lld/lib/ReaderWriter/Native/WriterNative.cpp +++ b/lld/lib/ReaderWriter/Native/WriterNative.cpp @@ -431,6 +431,7 @@ private: attrs.deadStrip = atom.deadStrip(); attrs.dynamicExport = atom.dynamicExport(); attrs.permissions = atom.permissions(); + attrs.alias = atom.isAlias(); return attrs; } diff --git a/lld/lib/ReaderWriter/PECOFF/Atoms.h b/lld/lib/ReaderWriter/PECOFF/Atoms.h index c4ae1271c0b..a7477ddffa6 100644 --- a/lld/lib/ReaderWriter/PECOFF/Atoms.h +++ b/lld/lib/ReaderWriter/PECOFF/Atoms.h @@ -105,6 +105,7 @@ public: return sectionPositionAny; } DeadStripKind deadStrip() const override { return deadStripNormal; } + bool isAlias() const override { return false; } Kind getKind() const { return _kind; } diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp index dbc50873f75..e9bfc1a8233 100644 --- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp +++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp @@ -892,6 +892,7 @@ template <> struct MappingTraits<const lld::DefinedAtom *> { DeadStripKind deadStrip() const override { return _deadStrip; } DynamicExport dynamicExport() const override { return _dynamicExport; } ContentPermissions permissions() const override { return _permissions; } + bool isAlias() const override { return false; } bool isGroupChild() const { return _isGroupChild; } ArrayRef<uint8_t> rawContent() const override { if (!occupiesDiskSpace()) |