summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2013-01-07 07:59:46 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2013-01-07 07:59:46 +0000
commit00b702c95c4d0117f8119c5063575195c3a64438 (patch)
treeb9cdf5559dd9c4f8a8055c40c7d11cb02b729045
parentc8a12cce981fb8302ba9ce89c450351d93b56888 (diff)
downloadbcm5719-llvm-00b702c95c4d0117f8119c5063575195c3a64438.tar.gz
bcm5719-llvm-00b702c95c4d0117f8119c5063575195c3a64438.zip
[ELF] Change Segment to hold Chunks instead of Sections. No functionality change.
llvm-svn: 171708
-rw-r--r--lld/lib/ReaderWriter/ELF/WriterELF.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/lld/lib/ReaderWriter/ELF/WriterELF.cpp b/lld/lib/ReaderWriter/ELF/WriterELF.cpp
index 74a8442936d..2dcbbce3ffb 100644
--- a/lld/lib/ReaderWriter/ELF/WriterELF.cpp
+++ b/lld/lib/ReaderWriter/ELF/WriterELF.cpp
@@ -641,7 +641,7 @@ template<support::endianness target_endianness,
class SegmentSlice {
public:
typedef typename std::vector<
- Section<target_endianness, max_align, is64Bits> *>::iterator sectionIter;
+ Chunk<target_endianness, max_align, is64Bits> *>::iterator sectionIter;
SegmentSlice() { }
@@ -721,7 +721,7 @@ public:
typedef typename std::vector<SegmentSlice<
target_endianness, max_align, is64Bits> *>::iterator slice_iter;
typedef typename std::vector<
- Section<target_endianness, max_align, is64Bits> *>::iterator SectionIter;
+ Chunk<target_endianness, max_align, is64Bits> *>::iterator SectionIter;
Segment(const StringRef name,
const ELFLayout::SegmentType type,
@@ -894,7 +894,9 @@ public:
virtualAddressSet = true;
}
(*si)->setVAddr(addr);
- (*si)->assignVirtualAddress(addr);
+ if (auto s =
+ dyn_cast<Section<target_endianness, max_align, is64Bits>>(*si))
+ s->assignVirtualAddress(addr);
(*si)->setMemSize(addr - (*si)->virtualAddr());
}
(*sei)->setMemSize(addr - (*sei)->virtualAddr());
@@ -956,7 +958,8 @@ public:
}
private:
- std::vector<Section<target_endianness, max_align, is64Bits> *> _sections;
+ /// \brief Section or some other chunk type.
+ std::vector<Chunk<target_endianness, max_align, is64Bits> *> _sections;
std::vector<SegmentSlice<target_endianness, max_align, is64Bits> *>
_segmentSlices;
ELFLayout::SegmentType _segmentType;
OpenPOWER on IntegriCloud