A pending change will merge MCSection*::getName() to MCSection::getName().
/// section name
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
- StringRef getSectionName() const { return SectionName; }
+ StringRef getName() const { return SectionName; }
unsigned getCharacteristics() const { return Characteristics; }
MCSymbol *getCOMDATSymbol() const { return COMDATSymbol; }
int getSelection() const { return Selection; }
/// section name
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
- StringRef getSectionName() const { return SectionName; }
+ StringRef getName() const { return SectionName; }
unsigned getType() const { return Type; }
unsigned getFlags() const { return Flags; }
unsigned getEntrySize() const { return EntrySize; }
return StringRef(SegmentName, 16);
return StringRef(SegmentName);
}
- StringRef getSectionName() const {
+ StringRef getName() const {
// SectionName is not necessarily null terminated!
if (SectionName[15])
return StringRef(SectionName, 16);
/// section name
bool shouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
- StringRef getSectionName() const { return SectionName; }
+ StringRef getName() const { return SectionName; }
const MCSymbolWasm *getGroup() const { return Group; }
void PrintSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
return S->getVariant() == SV_XCOFF;
}
- StringRef getSectionName() const { return Name; }
+ StringRef getName() const { return Name; }
XCOFF::StorageMappingClass getMappingClass() const { return MappingClass; }
XCOFF::StorageClass getStorageClass() const { return StorageClass; }
XCOFF::SymbolType getCSectType() const { return Type; }
const TargetMachine &TM) const {
assert(MBB.isBeginSection() && "Basic block does not start a section!");
SmallString<128> Name;
- Name = (static_cast<MCSectionELF *>(MBB.getParent()->getSection()))
- ->getSectionName();
+ Name =
+ (static_cast<MCSectionELF *>(MBB.getParent()->getSection()))->getName();
unsigned UniqueID = MCContext::GenericSectionID;
switch (MBB.getSectionID().Type) {
struct ELFWriter;
bool isDwoSection(const MCSectionELF &Sec) {
- return Sec.getSectionName().endswith(".dwo");
+ return Sec.getName().endswith(".dwo");
}
class SymbolTableWriter {
unsigned ELFWriter::addToSectionTable(const MCSectionELF *Sec) {
SectionTable.push_back(Sec);
- StrTabBuilder.add(Sec->getSectionName());
+ StrTabBuilder.add(Sec->getName());
return SectionTable.size();
}
if (OWriter.Relocations[&Sec].empty())
return nullptr;
- const StringRef SectionName = Sec.getSectionName();
+ const StringRef SectionName = Sec.getName();
std::string RelaSectionName = hasRelocationAddend() ? ".rela" : ".rel";
RelaSectionName += SectionName;
void ELFWriter::writeSectionData(const MCAssembler &Asm, MCSection &Sec,
const MCAsmLayout &Layout) {
MCSectionELF &Section = static_cast<MCSectionELF &>(Sec);
- StringRef SectionName = Section.getSectionName();
+ StringRef SectionName = Section.getName();
auto &MC = Asm.getContext();
const auto &MAI = MC.getAsmInfo();
sh_link = SectionIndexMap.lookup(Sec);
}
- WriteSecHdrEntry(StrTabBuilder.getOffset(Section.getSectionName()),
+ WriteSecHdrEntry(StrTabBuilder.getOffset(Section.getName()),
Section.getType(), Section.getFlags(), 0, Offset, Size,
sh_link, sh_info, Section.getAlignment(),
Section.getEntrySize());
if (SMO.getType() == MachO::S_CSTRING_LITERALS)
return false;
- if (SMO.getSegmentName() == "__DATA" && SMO.getSectionName() == "__cfstring")
+ if (SMO.getSegmentName() == "__DATA" && SMO.getName() == "__cfstring")
return false;
- if (SMO.getSegmentName() == "__DATA" &&
- SMO.getSectionName() == "__objc_classrefs")
+ if (SMO.getSegmentName() == "__DATA" && SMO.getName() == "__objc_classrefs")
return false;
switch (SMO.getType()) {
// This is a mach-o specific directive.
const MCSectionMachO *MOSection = ((const MCSectionMachO*)Section);
- OS << MOSection->getSegmentName() << "," << MOSection->getSectionName();
+ OS << MOSection->getSegmentName() << "," << MOSection->getName();
if (Symbol) {
OS << ',';
if (DF.getContents()[i]) {
if (auto *ELFSec = dyn_cast<const MCSectionELF>(Sec))
report_fatal_error("non-zero initializer found in section '" +
- ELFSec->getSectionName() + "'");
+ ELFSec->getName() + "'");
else
report_fatal_error("non-zero initializer found in virtual section");
}
// SHF_LINK_ORDER flag.
unsigned UniqueID = Section->getUniqueID();
ELFUniquingMap.erase(
- ELFSectionKey{Section->getSectionName(), GroupName, "", UniqueID});
+ ELFSectionKey{Section->getName(), GroupName, "", UniqueID});
auto I = ELFUniquingMap
.insert(std::make_pair(
ELFSectionKey{Name, GroupName, "", UniqueID}, Section))
unsigned Characteristics = Sec->getCharacteristics();
if (KeySym) {
Characteristics |= COFF::IMAGE_SCN_LNK_COMDAT;
- return getCOFFSection(Sec->getSectionName(), Characteristics,
- Sec->getKind(), KeySym->getName(),
+ return getCOFFSection(Sec->getName(), Characteristics, Sec->getKind(),
+ KeySym->getName(),
COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE, UniqueID);
}
- return getCOFFSection(Sec->getSectionName(), Characteristics, Sec->getKind(),
- "", 0, UniqueID);
+ return getCOFFSection(Sec->getName(), Characteristics, Sec->getKind(), "", 0,
+ UniqueID);
}
MCSectionWasm *MCContext::getWasmSection(const Twine &Section, SectionKind K,
// These sections are created by the assembler itself after the end of
// the .s file.
StringRef SegName = MSec.getSegmentName();
- StringRef SecName = MSec.getSectionName();
+ StringRef SecName = MSec.getName();
if (SegName == "__LD" && SecName == "__compact_unwind")
return true;
return Error(Loc, "cannot make section associative with .linkonce");
if (Current->getCharacteristics() & COFF::IMAGE_SCN_LNK_COMDAT)
- return Error(Loc, Twine("section '") + Current->getSectionName() +
- "' is already linkonce");
+ return Error(Loc, Twine("section '") + Current->getName() +
+ "' is already linkonce");
Current->setSelection(Type);
const MCExpr *Subsection) const {
// standard sections don't require the '.section'
if (ShouldOmitSectionDirective(SectionName, MAI)) {
- OS << '\t' << getSectionName() << '\n';
+ OS << '\t' << getName() << '\n';
return;
}
- OS << "\t.section\t" << getSectionName() << ",\"";
+ OS << "\t.section\t" << getName() << ",\"";
if (getCharacteristics() & COFF::IMAGE_SCN_CNT_INITIALIZED_DATA)
OS << 'd';
if (getCharacteristics() & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
raw_ostream &OS,
const MCExpr *Subsection) const {
if (ShouldOmitSectionDirective(SectionName, MAI)) {
- OS << '\t' << getSectionName();
+ OS << '\t' << getName();
if (Subsection) {
OS << '\t';
Subsection->print(OS, &MAI);
}
OS << "\t.section\t";
- printName(OS, getSectionName());
+ printName(OS, getName());
// Handle the weird solaris syntax if desired.
if (MAI.usesSunStyleELFSectionSwitchSyntax() &&
OS << "llvm_sympart";
else
report_fatal_error("unsupported type 0x" + Twine::utohexstr(Type) +
- " for section " + getSectionName());
+ " for section " + getName());
if (EntrySize) {
assert(Flags & ELF::SHF_MERGE);
void MCSectionMachO::PrintSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
raw_ostream &OS,
const MCExpr *Subsection) const {
- OS << "\t.section\t" << getSegmentName() << ',' << getSectionName();
+ OS << "\t.section\t" << getSegmentName() << ',' << getName();
// Get the section type and attributes.
unsigned TAA = getTypeAndAttributes();
const MCExpr *Subsection) const {
if (shouldOmitSectionDirective(SectionName, MAI)) {
- OS << '\t' << getSectionName();
+ OS << '\t' << getName();
if (Subsection) {
OS << '\t';
Subsection->print(OS, &MAI);
}
OS << "\t.section\t";
- printName(OS, getSectionName());
+ printName(OS, getName());
OS << ",\"";
if (IsPassive)
// GCC does, which is to make plain comdat selectany section named like
// ".[px]data$_Z3foov".
if (!Context.getAsmInfo()->hasCOFFAssociativeComdats()) {
- std::string SectionName =
- (MainCFISecCOFF->getSectionName() + "$" +
- TextSecCOFF->getSectionName().split('$').second)
- .str();
+ std::string SectionName = (MainCFISecCOFF->getName() + "$" +
+ TextSecCOFF->getName().split('$').second)
+ .str();
return Context.getCOFFSection(
SectionName,
MainCFISecCOFF->getCharacteristics() | COFF::IMAGE_SCN_LNK_COMDAT,
uint64_t Start = W.OS.tell();
(void) Start;
- writeWithPadding(Section.getSectionName(), 16);
+ writeWithPadding(Section.getName(), 16);
writeWithPadding(Section.getSegmentName(), 16);
if (is64Bit()) {
W.write<uint64_t>(VMAddr); // address
void print(raw_ostream &Out) const {
Out << wasm::relocTypetoString(Type) << " Off=" << Offset
<< ", Sym=" << *Symbol << ", Addend=" << Addend
- << ", FixupSection=" << FixupSection->getSectionName();
+ << ", FixupSection=" << FixupSection->getName();
}
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
auto Pair = SectionFunctions.insert(std::make_pair(&Sec, &S));
if (!Pair.second)
report_fatal_error("section already has a defining function: " +
- Sec.getSectionName());
+ Sec.getName());
}
}
}
const auto *SymA = cast<MCSymbolWasm>(&RefA->getSymbol());
// The .init_array isn't translated as data, so don't do relocations in it.
- if (FixupSection.getSectionName().startswith(".init_array")) {
+ if (FixupSection.getName().startswith(".init_array")) {
SymA->setUsedInInitArray();
return;
}
static void addData(SmallVectorImpl<char> &DataBytes,
MCSectionWasm &DataSection) {
- LLVM_DEBUG(errs() << "addData: " << DataSection.getSectionName() << "\n");
+ LLVM_DEBUG(errs() << "addData: " << DataSection.getName() << "\n");
DataBytes.resize(alignTo(DataBytes.size(), DataSection.getAlignment()));
// populating DataLocations.
for (MCSection &Sec : Asm) {
auto &Section = static_cast<MCSectionWasm &>(Sec);
- StringRef SectionName = Section.getSectionName();
+ StringRef SectionName = Section.getName();
// .init_array sections are handled specially elsewhere.
if (SectionName.startswith(".init_array"))
// Translate .init_array section contents into start functions.
for (const MCSection &S : Asm) {
const auto &WS = static_cast<const MCSectionWasm &>(S);
- if (WS.getSectionName().startswith(".fini_array"))
+ if (WS.getName().startswith(".fini_array"))
report_fatal_error(".fini_array sections are unsupported");
- if (!WS.getSectionName().startswith(".init_array"))
+ if (!WS.getName().startswith(".init_array"))
continue;
if (WS.getFragmentList().empty())
continue;
uint16_t Priority = UINT16_MAX;
unsigned PrefixLength = strlen(".init_array");
- if (WS.getSectionName().size() > PrefixLength) {
- if (WS.getSectionName()[PrefixLength] != '.')
+ if (WS.getName().size() > PrefixLength) {
+ if (WS.getName()[PrefixLength] != '.')
report_fatal_error(
".init_array section priority should start with '.'");
- if (WS.getSectionName()
- .substr(PrefixLength + 1)
- .getAsInteger(10, Priority))
+ if (WS.getName().substr(PrefixLength + 1).getAsInteger(10, Priority))
report_fatal_error("invalid .init_array section priority");
}
const auto &DataFrag = cast<MCDataFragment>(Frag);
/// This function takes a section data object from the assembler
/// and creates the associated COFF section staging object.
void WinCOFFObjectWriter::defineSection(const MCSectionCOFF &MCSec) {
- COFFSection *Section = createSection(MCSec.getSectionName());
- COFFSymbol *Symbol = createSymbol(MCSec.getSectionName());
+ COFFSection *Section = createSection(MCSec.getName());
+ COFFSymbol *Symbol = createSymbol(MCSec.getName());
Section->Symbol = Symbol;
Symbol->Section = Section;
Symbol->Data.StorageClass = COFF::IMAGE_SYM_CLASS_STATIC;
// without a section.
if (!AssocMCSym->isInSection()) {
Asm.getContext().reportError(
- SMLoc(), Twine("cannot make section ") + MCSec.getSectionName() +
+ SMLoc(), Twine("cannot make section ") + MCSec.getName() +
Twine(" associative with sectionless symbol ") +
AssocMCSym->getName());
continue;
SmallVector<Symbol, 1> Syms;
SmallVector<XCOFFRelocation, 1> Relocations;
- StringRef getName() const { return MCCsect->getSectionName(); }
+ StringRef getName() const { return MCCsect->getName(); }
ControlSection(const MCSectionXCOFF *MCSec)
: MCCsect(MCSec), SymbolTableIndex(-1), Address(-1), Size(0) {}
};
// If the name does not fit in the storage provided in the symbol table
// entry, add it to the string table.
- if (nameShouldBeInStringTable(MCSec->getSectionName()))
- Strings.add(MCSec->getSectionName());
+ if (nameShouldBeInStringTable(MCSec->getName()))
+ Strings.add(MCSec->getName());
CsectGroup &Group = getCsectGroup(MCSec);
Group.emplace_back(MCSec);
return false;
if (RefSec.getSegmentName() == "__DATA" &&
- RefSec.getSectionName() == "__objc_classrefs")
+ RefSec.getName() == "__objc_classrefs")
return false;
// FIXME: ld64 currently handles internal pointer-sized relocations
static_cast<const MCSectionELF &>(Fn.getSection());
// Create the name for new section
- StringRef FnSecName(FnSection.getSectionName());
+ StringRef FnSecName(FnSection.getName());
SmallString<128> EHSecName(Prefix);
if (FnSecName != ".text") {
EHSecName += FnSecName;
MCSection &Section = FuncLabel->getSection();
const MCSectionELF *SectionELF = dyn_cast<MCSectionELF>(&Section);
assert(SectionELF && "Null section for Function Label");
- SecNameOff = addString(SectionELF->getSectionName());
+ SecNameOff = addString(SectionELF->getName());
} else {
SecNameOff = addString(".text");
}