[lld] r315266 - Add comment to InputSectionBase::File.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 9 20:22:29 PDT 2017


Author: ruiu
Date: Mon Oct  9 20:22:29 2017
New Revision: 315266

URL: http://llvm.org/viewvc/llvm-project?rev=315266&view=rev
Log:
Add comment to InputSectionBase::File.

This patch also moves declarations so that related declarations next
to each other.

Modified:
    lld/trunk/ELF/InputSection.cpp
    lld/trunk/ELF/InputSection.h

Modified: lld/trunk/ELF/InputSection.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputSection.cpp?rev=315266&r1=315265&r2=315266&view=diff
==============================================================================
--- lld/trunk/ELF/InputSection.cpp (original)
+++ lld/trunk/ELF/InputSection.cpp Mon Oct  9 20:22:29 2017
@@ -696,10 +696,6 @@ void InputSection::relocateNonAlloc(uint
   }
 }
 
-template <class ELFT> ObjFile<ELFT> *InputSectionBase::getFile() const {
-  return cast_or_null<ObjFile<ELFT>>(File);
-}
-
 template <class ELFT>
 void InputSectionBase::relocate(uint8_t *Buf, uint8_t *BufEnd) {
   if (Flags & SHF_ALLOC) {
@@ -1031,11 +1027,6 @@ template void InputSection::writeTo<ELF3
 template void InputSection::writeTo<ELF64LE>(uint8_t *);
 template void InputSection::writeTo<ELF64BE>(uint8_t *);
 
-template ObjFile<ELF32LE> *InputSectionBase::getFile<ELF32LE>() const;
-template ObjFile<ELF32BE> *InputSectionBase::getFile<ELF32BE>() const;
-template ObjFile<ELF64LE> *InputSectionBase::getFile<ELF64LE>() const;
-template ObjFile<ELF64BE> *InputSectionBase::getFile<ELF64BE>() const;
-
 template MergeInputSection::MergeInputSection(ObjFile<ELF32LE> *,
                                               const ELF32LE::Shdr *, StringRef);
 template MergeInputSection::MergeInputSection(ObjFile<ELF32BE> *,

Modified: lld/trunk/ELF/InputSection.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputSection.h?rev=315266&r1=315265&r2=315266&view=diff
==============================================================================
--- lld/trunk/ELF/InputSection.h (original)
+++ lld/trunk/ELF/InputSection.h Mon Oct  9 20:22:29 2017
@@ -102,16 +102,6 @@ protected:
 // This corresponds to a section of an input file.
 class InputSectionBase : public SectionBase {
 public:
-  static bool classof(const SectionBase *S) { return S->kind() != Output; }
-
-  // The file this section is from.
-  InputFile *File;
-
-  ArrayRef<uint8_t> Data;
-  uint64_t getOffsetInFile() const;
-
-  static InputSectionBase Discarded;
-
   InputSectionBase()
       : SectionBase(Regular, "", /*Flags*/ 0, /*Entsize*/ 0, /*Alignment*/ 0,
                     /*Type*/ 0,
@@ -130,6 +120,22 @@ public:
                    uint32_t Alignment, ArrayRef<uint8_t> Data, StringRef Name,
                    Kind SectionKind);
 
+  static bool classof(const SectionBase *S) { return S->kind() != Output; }
+
+  // The file which contains this section. It's dynamic type is always
+  // ObjFile<ELFT>, but in order to avoid ELFT, we use InputFile as
+  // its static type.
+  InputFile *File;
+
+  template <class ELFT> ObjFile<ELFT> *getFile() const {
+    return cast_or_null<ObjFile<ELFT>>(File);
+  }
+
+  ArrayRef<uint8_t> Data;
+  uint64_t getOffsetInFile() const;
+
+  static InputSectionBase Discarded;
+
   // Input sections are part of an output section. Special sections
   // like .eh_frame and merge sections are first combined into a
   // synthetic section that is then added to an output section. In all
@@ -140,12 +146,14 @@ public:
   const void *FirstRelocation = nullptr;
   unsigned NumRelocations : 31;
   unsigned AreRelocsRela : 1;
+
   template <class ELFT> ArrayRef<typename ELFT::Rel> rels() const {
     assert(!AreRelocsRela);
     return llvm::makeArrayRef(
         static_cast<const typename ELFT::Rel *>(FirstRelocation),
         NumRelocations);
   }
+
   template <class ELFT> ArrayRef<typename ELFT::Rela> relas() const {
     assert(AreRelocsRela);
     return llvm::makeArrayRef(
@@ -166,8 +174,6 @@ public:
   // Returns the size of this section (even if this is a common or BSS.)
   size_t getSize() const;
 
-  template <class ELFT> ObjFile<ELFT> *getFile() const;
-
   InputSection *getLinkOrderDep() const;
 
   void maybeUncompress();




More information about the llvm-commits mailing list