diff options
| author | Rui Ueyama <ruiu@google.com> | 2016-08-02 01:35:13 +0000 | 
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2016-08-02 01:35:13 +0000 | 
| commit | 07784904282c8b0793b0edfdc0220eadfadb205c (patch) | |
| tree | a8811a1ac751d91b29c3a42e0ecd70e286d9d372 | |
| parent | 4b54b7f5caee5ecdfda611dec10d956d9928edee (diff) | |
| download | bcm5719-llvm-07784904282c8b0793b0edfdc0220eadfadb205c.tar.gz bcm5719-llvm-07784904282c8b0793b0edfdc0220eadfadb205c.zip  | |
Remove DefinedCommon::Section.
Since CommonInputSection is a singleton class, we don't need
to store pointers to all DefinedCommon symbols.
llvm-svn: 277410
| -rw-r--r-- | lld/ELF/InputSection.cpp | 1 | ||||
| -rw-r--r-- | lld/ELF/OutputSections.cpp | 2 | ||||
| -rw-r--r-- | lld/ELF/Symbols.cpp | 8 | ||||
| -rw-r--r-- | lld/ELF/Symbols.h | 3 | 
4 files changed, 5 insertions, 9 deletions
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp index 28caacbff82..baa2e918619 100644 --- a/lld/ELF/InputSection.cpp +++ b/lld/ELF/InputSection.cpp @@ -687,7 +687,6 @@ CommonInputSection<ELFT>::CommonInputSection(      // Compute symbol offset relative to beginning of input section.      Sym->Offset = Hdr.sh_size; -    Sym->Section = this;      Hdr.sh_size += Sym->Size;    }  } diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index 2b409ff4fc2..bf065d3197e 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -1448,7 +1448,7 @@ SymbolTableSection<ELFT>::getOutputSection(SymbolBody *Sym) {      break;    }    case SymbolBody::DefinedCommonKind: -    return cast<DefinedCommon<ELFT>>(Sym)->Section->OutSec; +    return CommonInputSection<ELFT>::X->OutSec;    case SymbolBody::SharedKind:      if (cast<SharedSymbol<ELFT>>(Sym)->needsCopy())        return Out<ELFT>::Bss; diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp index 6d7e7978c71..b1056f8d508 100644 --- a/lld/ELF/Symbols.cpp +++ b/lld/ELF/Symbols.cpp @@ -63,10 +63,10 @@ static typename ELFT::uint getSymVA(const SymbolBody &Body,        return VA - Out<ELFT>::TlsPhdr->p_vaddr;      return VA;    } -  case SymbolBody::DefinedCommonKind: { -    auto &D = cast<DefinedCommon<ELFT>>(Body); -    return D.Section->OutSec->getVA() + D.Section->OutSecOff + D.Offset; -  } +  case SymbolBody::DefinedCommonKind: +    return CommonInputSection<ELFT>::X->OutSec->getVA() + +           CommonInputSection<ELFT>::X->OutSecOff + +           cast<DefinedCommon<ELFT>>(Body).Offset;    case SymbolBody::SharedKind: {      auto &SS = cast<SharedSymbol<ELFT>>(Body);      if (!SS.NeedsCopyOrPltAddr) diff --git a/lld/ELF/Symbols.h b/lld/ELF/Symbols.h index f8b5f463ba2..a1170f4febc 100644 --- a/lld/ELF/Symbols.h +++ b/lld/ELF/Symbols.h @@ -184,9 +184,6 @@ public:    uint64_t Alignment;    uint64_t Size; - -  // Virtual input section for common symbols. -  CommonInputSection<ELFT> *Section;  };  // Regular defined symbols read from object file symbol tables.  | 

