diff options
author | Rui Ueyama <ruiu@google.com> | 2014-05-02 23:45:28 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2014-05-02 23:45:28 +0000 |
commit | 82d62c442011e0401544db96a77770432ce43411 (patch) | |
tree | dbe20a265655e20dd753af4933dc6979f118ddb1 | |
parent | 3872d0ae26cb6d56373c8640cef2df86499d13e9 (diff) | |
download | bcm5719-llvm-82d62c442011e0401544db96a77770432ce43411.tar.gz bcm5719-llvm-82d62c442011e0401544db96a77770432ce43411.zip |
Revert "Remove dead code."
This reverts commit r207884 which was prematurely committed by accident.
llvm-svn: 207886
-rw-r--r-- | lld/include/lld/Core/DefinedAtom.h | 6 | ||||
-rw-r--r-- | lld/include/lld/ReaderWriter/Simple.h | 2 | ||||
-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 |
8 files changed, 27 insertions, 0 deletions
diff --git a/lld/include/lld/Core/DefinedAtom.h b/lld/include/lld/Core/DefinedAtom.h index f2bcce4d02e..3e340eb4504 100644 --- a/lld/include/lld/Core/DefinedAtom.h +++ b/lld/include/lld/Core/DefinedAtom.h @@ -270,6 +270,12 @@ public: /// is R__. virtual ContentPermissions permissions() const; + /// \brief means this is a zero size atom that exists to provide an alternate + /// name for another atom. Alias atoms must have a special Reference to the + /// atom they alias which the layout engine recognizes and forces the alias + /// atom to layout right before the target atom. + virtual bool isAlias() const = 0; + /// \brief returns a reference to the raw (unrelocated) bytes of this Atom's /// content. virtual ArrayRef<uint8_t> rawContent() const = 0; diff --git a/lld/include/lld/ReaderWriter/Simple.h b/lld/include/lld/ReaderWriter/Simple.h index c8e2b20d4bd..aff987a6c6d 100644 --- a/lld/include/lld/ReaderWriter/Simple.h +++ b/lld/include/lld/ReaderWriter/Simple.h @@ -140,6 +140,8 @@ public: return DefinedAtom::deadStripNormal; } + bool isAlias() const override { return false; } + DefinedAtom::reference_iterator begin() const override { uintptr_t index = 0; const void *it = reinterpret_cast<const void *>(index); 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()) |