diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-10 19:05:07 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-10 19:05:07 +0000 |
commit | 4283f4b81e8c1cbf5c7a7b51e949e109ae25ff8c (patch) | |
tree | 5eae757984e995d69734c0bb8235e3a693cf6637 | |
parent | 3355c4e5986571da8f16fca060941e4020a4447b (diff) |
Use MCSectionELF in places we know we have an ELF section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118699 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCContext.h | 7 | ||||
-rw-r--r-- | lib/MC/ELFObjectWriter.cpp | 12 | ||||
-rw-r--r-- | lib/MC/MCContext.cpp | 3 |
3 files changed, 11 insertions, 11 deletions
diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index d3b38360e3..417fe040d1 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -30,6 +30,7 @@ namespace llvm { class StringRef; class Twine; class MCSectionMachO; + class MCSectionELF; /// MCContext - Context object for machine code objects. This class owns all /// of the sections that it creates. @@ -138,9 +139,9 @@ namespace llvm { return getMachOSection(Segment, Section, TypeAndAttributes, 0, K); } - const MCSection *getELFSection(StringRef Section, unsigned Type, - unsigned Flags, SectionKind Kind, - unsigned EntrySize = 0); + const MCSectionELF *getELFSection(StringRef Section, unsigned Type, + unsigned Flags, SectionKind Kind, + unsigned EntrySize = 0); const MCSection *getCOFFSection(StringRef Section, unsigned Characteristics, int Selection, SectionKind Kind); diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index 313f2e2008..ec7091f7a0 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -1048,7 +1048,7 @@ void ELFObjectWriterImpl::WriteRelocation(MCAssembler &Asm, MCAsmLayout &Layout, const MCSectionData &SD) { if (!Relocations[&SD].empty()) { MCContext &Ctx = Asm.getContext(); - const MCSection *RelaSection; + const MCSectionELF *RelaSection; const MCSectionELF &Section = static_cast<const MCSectionELF&>(SD.getSection()); @@ -1154,14 +1154,14 @@ void ELFObjectWriterImpl::CreateMetadataSections(MCAssembler &Asm, unsigned NumRegularSections = Asm.size(); // We construct .shstrtab, .symtab and .strtab in this order to match gnu as. - const MCSection *ShstrtabSection = + const MCSectionELF *ShstrtabSection = Ctx.getELFSection(".shstrtab", ELF::SHT_STRTAB, 0, SectionKind::getReadOnly(), false); MCSectionData &ShstrtabSD = Asm.getOrCreateSectionData(*ShstrtabSection); ShstrtabSD.setAlignment(1); ShstrtabIndex = Asm.size(); - const MCSection *SymtabSection = + const MCSectionELF *SymtabSection = Ctx.getELFSection(".symtab", ELF::SHT_SYMTAB, 0, SectionKind::getReadOnly(), EntrySize); @@ -1172,7 +1172,7 @@ void ELFObjectWriterImpl::CreateMetadataSections(MCAssembler &Asm, MCSectionData *SymtabShndxSD = NULL; if (NeedsSymtabShndx) { - const MCSection *SymtabShndxSection = + const MCSectionELF *SymtabShndxSection = Ctx.getELFSection(".symtab_shndx", ELF::SHT_SYMTAB_SHNDX, 0, SectionKind::getReadOnly(), 4); SymtabShndxSD = &Asm.getOrCreateSectionData(*SymtabShndxSection); @@ -1350,8 +1350,8 @@ void ELFObjectWriterImpl::WriteObject(MCAssembler &Asm, case ELF::SHT_REL: case ELF::SHT_RELA: { - const MCSection *SymtabSection; - const MCSection *InfoSection; + const MCSectionELF *SymtabSection; + const MCSectionELF *InfoSection; SymtabSection = Asm.getContext().getELFSection(".symtab", ELF::SHT_SYMTAB, 0, SectionKind::getReadOnly(), diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index 3b96264be0..bafa10a174 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -148,8 +148,7 @@ getMachOSection(StringRef Segment, StringRef Section, Reserved2, Kind); } - -const MCSection *MCContext:: +const MCSectionELF *MCContext:: getELFSection(StringRef Section, unsigned Type, unsigned Flags, SectionKind Kind, unsigned EntrySize) { if (ELFUniquingMap == 0) |