diff options
Diffstat (limited to 'lld/lib')
-rw-r--r-- | lld/lib/Passes/GOTPass.cpp | 2 | ||||
-rw-r--r-- | lld/lib/Passes/StubsPass.cpp | 5 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/ELF/ReaderELF.cpp | 7 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/MachO/StubsPass.hpp | 2 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/Native/ReaderNative.cpp | 4 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp | 4 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/ReaderArchive.cpp | 4 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp | 11 |
8 files changed, 8 insertions, 31 deletions
diff --git a/lld/lib/Passes/GOTPass.cpp b/lld/lib/Passes/GOTPass.cpp index 78b1f5064da..1a819eb5a62 100644 --- a/lld/lib/Passes/GOTPass.cpp +++ b/lld/lib/Passes/GOTPass.cpp @@ -40,7 +40,7 @@ #include "llvm/ADT/DenseMap.h" namespace lld { -void GOTPass::perform(File& mergedFile) { +void GOTPass::perform(MutableFile &mergedFile) { // Use map so all pointers to same symbol use same GOT entry. llvm::DenseMap<const Atom*, const DefinedAtom*> targetToGOT; diff --git a/lld/lib/Passes/StubsPass.cpp b/lld/lib/Passes/StubsPass.cpp index c468959d2cc..ef3870580cb 100644 --- a/lld/lib/Passes/StubsPass.cpp +++ b/lld/lib/Passes/StubsPass.cpp @@ -23,7 +23,7 @@ namespace lld { -void StubsPass::perform(File& mergedFile) { +void StubsPass::perform(MutableFile &mergedFile) { // Skip this pass if output format uses text relocations instead of stubs. if ( ! this->noTextRelocs() ) return; @@ -63,7 +63,4 @@ void StubsPass::perform(File& mergedFile) { // Add all created stubs and support Atoms. this->addStubAtoms(mergedFile); } - - - } diff --git a/lld/lib/ReaderWriter/ELF/ReaderELF.cpp b/lld/lib/ReaderWriter/ELF/ReaderELF.cpp index c6553c58d90..f40dacc8f80 100644 --- a/lld/lib/ReaderWriter/ELF/ReaderELF.cpp +++ b/lld/lib/ReaderWriter/ELF/ReaderELF.cpp @@ -209,6 +209,9 @@ public: // Get the symbol's content: llvm::ArrayRef<uint8_t> symbolData; uint64_t contentSize; + + // If the next symbol is at the same location + if (si + 1 == se) { // if this is the last symbol, take up the remaining data. contentSize = (isCommon) ? 0 @@ -272,10 +275,6 @@ public: } } - virtual void addAtom(const Atom&) { - llvm_unreachable("cannot add atoms to native .o files"); - } - virtual const atom_collection<DefinedAtom> &defined() const { return _definedAtoms; } diff --git a/lld/lib/ReaderWriter/MachO/StubsPass.hpp b/lld/lib/ReaderWriter/MachO/StubsPass.hpp index ba326e0400a..71e76541f72 100644 --- a/lld/lib/ReaderWriter/MachO/StubsPass.hpp +++ b/lld/lib/ReaderWriter/MachO/StubsPass.hpp @@ -119,7 +119,7 @@ public: } - virtual void addStubAtoms(File &mergedFile) { + virtual void addStubAtoms(MutableFile &mergedFile) { // Exit early if no stubs needed. if ( _targetToStub.size() == 0 ) return; diff --git a/lld/lib/ReaderWriter/Native/ReaderNative.cpp b/lld/lib/ReaderWriter/Native/ReaderNative.cpp index 1ad37c79892..36389d0cb51 100644 --- a/lld/lib/ReaderWriter/Native/ReaderNative.cpp +++ b/lld/lib/ReaderWriter/Native/ReaderNative.cpp @@ -371,10 +371,6 @@ public: return _absoluteAtoms; } - virtual void addAtom(const Atom&) { - assert(0 && "cannot add atoms to native .o files"); - } - private: friend class NativeDefinedAtomV1; friend class NativeUndefinedAtomV1; diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp index 4b1fd68a0b3..3058e81ec89 100644 --- a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp +++ b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp @@ -330,10 +330,6 @@ public: } } - virtual void addAtom(const Atom&) { - llvm_unreachable("cannot add atoms to native .obj files"); - } - virtual const atom_collection<DefinedAtom> &defined() const { return DefinedAtoms; } diff --git a/lld/lib/ReaderWriter/ReaderArchive.cpp b/lld/lib/ReaderWriter/ReaderArchive.cpp index 4a7acdb6a1d..99955617396 100644 --- a/lld/lib/ReaderWriter/ReaderArchive.cpp +++ b/lld/lib/ReaderWriter/ReaderArchive.cpp @@ -56,10 +56,6 @@ public: return result[0].release(); } - virtual void addAtom(const Atom&) { - llvm_unreachable("cannot add atoms to archive files"); - } - virtual const atom_collection<DefinedAtom> &defined() const { return _definedAtoms; } diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp index 93dcf214b43..a89958560c3 100644 --- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp +++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp @@ -614,10 +614,7 @@ struct MappingTraits<const lld::File*> { const lld::File *denormalize(IO &io) { return this; } - - virtual void addAtom(const lld::Atom&) { - llvm_unreachable("cannot add atoms to yaml .o files"); - } + virtual const atom_collection<lld::DefinedAtom> &defined() const { return _noDefinedAtoms; } @@ -672,11 +669,7 @@ struct MappingTraits<const lld::File*> { _absoluteAtoms.push_back(a); } const lld::File *denormalize(IO &io); - - - virtual void addAtom(const lld::Atom&) { - llvm_unreachable("cannot add atoms to yaml .o files"); - } + virtual const atom_collection<lld::DefinedAtom> &defined() const { return _definedAtoms; } |