mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
Use non virtual destructors for sections.
llvm-svn: 249548
This commit is contained in:
parent
bd3f2b9213
commit
a975b17d63
@ -105,10 +105,9 @@ protected:
|
||||
MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin);
|
||||
SectionVariant Variant;
|
||||
SectionKind Kind;
|
||||
~MCSection();
|
||||
|
||||
public:
|
||||
virtual ~MCSection();
|
||||
|
||||
SectionKind getKind() const { return Kind; }
|
||||
|
||||
SectionVariant getVariant() const { return Variant; }
|
||||
|
@ -21,7 +21,7 @@ namespace llvm {
|
||||
class MCSymbol;
|
||||
|
||||
/// This represents a section on Windows
|
||||
class MCSectionCOFF : public MCSection {
|
||||
class MCSectionCOFF final : public MCSection {
|
||||
// The memory for this string is stored in the same MCContext as *this.
|
||||
StringRef SectionName;
|
||||
|
||||
@ -51,9 +51,10 @@ private:
|
||||
assert((Characteristics & 0x00F00000) == 0 &&
|
||||
"alignment must not be set upon section creation");
|
||||
}
|
||||
~MCSectionCOFF() override;
|
||||
|
||||
public:
|
||||
~MCSectionCOFF();
|
||||
|
||||
/// Decides whether a '.section' directive should be printed before the
|
||||
/// section name
|
||||
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
||||
|
@ -27,7 +27,7 @@ class MCSymbol;
|
||||
|
||||
/// This represents a section on linux, lots of unix variants and some bare
|
||||
/// metal systems.
|
||||
class MCSectionELF final : public MCSection {
|
||||
class MCSectionELF final : public MCSection {
|
||||
/// This is the name of the section. The referenced memory is owned by
|
||||
/// TargetLoweringObjectFileELF's ELFUniqueMap.
|
||||
StringRef SectionName;
|
||||
@ -61,11 +61,12 @@ private:
|
||||
if (Group)
|
||||
Group->setIsSignature();
|
||||
}
|
||||
~MCSectionELF() override;
|
||||
|
||||
void setSectionName(StringRef Name) { SectionName = Name; }
|
||||
|
||||
public:
|
||||
~MCSectionELF();
|
||||
|
||||
/// Decides whether a '.section' directive should be printed before the
|
||||
/// section name
|
||||
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
||||
|
@ -22,7 +22,7 @@ namespace llvm {
|
||||
|
||||
/// This represents a section on a Mach-O system (used by Mac OS X). On a Mac
|
||||
/// system, these are also described in /usr/include/mach-o/loader.h.
|
||||
class MCSectionMachO : public MCSection {
|
||||
class MCSectionMachO final : public MCSection {
|
||||
char SegmentName[16]; // Not necessarily null terminated!
|
||||
char SectionName[16]; // Not necessarily null terminated!
|
||||
|
||||
|
@ -4566,25 +4566,25 @@ void NVPTXTargetLowering::ReplaceNodeResults(
|
||||
void NVPTXSection::anchor() {}
|
||||
|
||||
NVPTXTargetObjectFile::~NVPTXTargetObjectFile() {
|
||||
delete TextSection;
|
||||
delete DataSection;
|
||||
delete BSSSection;
|
||||
delete ReadOnlySection;
|
||||
delete static_cast<NVPTXSection*>(TextSection);
|
||||
delete static_cast<NVPTXSection*>(DataSection);
|
||||
delete static_cast<NVPTXSection*>(BSSSection);
|
||||
delete static_cast<NVPTXSection*>(ReadOnlySection);
|
||||
|
||||
delete StaticCtorSection;
|
||||
delete StaticDtorSection;
|
||||
delete LSDASection;
|
||||
delete EHFrameSection;
|
||||
delete DwarfAbbrevSection;
|
||||
delete DwarfInfoSection;
|
||||
delete DwarfLineSection;
|
||||
delete DwarfFrameSection;
|
||||
delete DwarfPubTypesSection;
|
||||
delete DwarfDebugInlineSection;
|
||||
delete DwarfStrSection;
|
||||
delete DwarfLocSection;
|
||||
delete DwarfARangesSection;
|
||||
delete DwarfRangesSection;
|
||||
delete static_cast<NVPTXSection*>(StaticCtorSection);
|
||||
delete static_cast<NVPTXSection*>(StaticDtorSection);
|
||||
delete static_cast<NVPTXSection*>(LSDASection);
|
||||
delete static_cast<NVPTXSection*>(EHFrameSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfAbbrevSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfInfoSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfLineSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfFrameSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfPubTypesSection);
|
||||
delete static_cast<const NVPTXSection*>(DwarfDebugInlineSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfStrSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfLocSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfARangesSection);
|
||||
delete static_cast<NVPTXSection*>(DwarfRangesSection);
|
||||
}
|
||||
|
||||
MCSection *
|
||||
|
@ -22,11 +22,11 @@ namespace llvm {
|
||||
/// Represents a section in PTX PTX does not have sections. We create this class
|
||||
/// in order to use the ASMPrint interface.
|
||||
///
|
||||
class NVPTXSection : public MCSection {
|
||||
class NVPTXSection final : public MCSection {
|
||||
virtual void anchor();
|
||||
public:
|
||||
NVPTXSection(SectionVariant V, SectionKind K) : MCSection(V, K, nullptr) {}
|
||||
virtual ~NVPTXSection() {}
|
||||
~NVPTXSection() {}
|
||||
|
||||
/// Override this as NVPTX has its own way of printing switching
|
||||
/// to a section.
|
||||
|
Loading…
Reference in New Issue
Block a user