[llvm-commits] [lld] r171708 - /lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp

Michael J. Spencer bigcheesegs at gmail.com
Sun Jan 6 23:59:46 PST 2013


Author: mspencer
Date: Mon Jan  7 01:59:46 2013
New Revision: 171708

URL: http://llvm.org/viewvc/llvm-project?rev=171708&view=rev
Log:
[ELF] Change Segment to hold Chunks instead of Sections. No functionality change.

Modified:
    lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp

Modified: lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp?rev=171708&r1=171707&r2=171708&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp Mon Jan  7 01:59:46 2013
@@ -641,7 +641,7 @@
 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 @@
   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 @@
           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 @@
   }
 
 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;





More information about the llvm-commits mailing list