mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
MC-COFF: Assert on non-coff sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116148 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9a89b0115f
commit
d47f4a9c98
@ -359,6 +359,8 @@ object_t *WinCOFFObjectWriter::createCOFFEntity(llvm::StringRef Name,
|
||||
/// This function takes a section data object from the assembler
|
||||
/// and creates the associated COFF section staging object.
|
||||
void WinCOFFObjectWriter::DefineSection(MCSectionData const &SectionData) {
|
||||
assert(SectionData.getSection().getVariant() == MCSection::SV_COFF
|
||||
&& "Got non COFF section in the COFF backend!");
|
||||
// FIXME: Not sure how to verify this (at least in a debug build).
|
||||
MCSectionCOFF const &Sec =
|
||||
static_cast<MCSectionCOFF const &>(SectionData.getSection());
|
||||
|
@ -157,6 +157,9 @@ void WinCOFFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
|
||||
}
|
||||
|
||||
void WinCOFFStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
|
||||
assert((Symbol->isInSection()
|
||||
? Symbol->getSection().getVariant() == MCSection::SV_COFF
|
||||
: true) && "Got non COFF section in the COFF backend!");
|
||||
// FIXME: This is all very ugly and depressing. What needs to happen here
|
||||
// depends on quite a few things that are all part of relaxation, which we
|
||||
// don't really even do.
|
||||
@ -197,6 +200,10 @@ void WinCOFFStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
|
||||
|
||||
void WinCOFFStreamer::EmitSymbolAttribute(MCSymbol *Symbol,
|
||||
MCSymbolAttr Attribute) {
|
||||
assert(Symbol && "Symbol must be non-null!");
|
||||
assert((Symbol->isInSection()
|
||||
? Symbol->getSection().getVariant() == MCSection::SV_COFF
|
||||
: true) && "Got non COFF section in the COFF backend!");
|
||||
switch (Attribute) {
|
||||
case MCSA_WeakReference:
|
||||
getAssembler().getOrCreateSymbolData(*Symbol).modifyFlags(
|
||||
@ -219,6 +226,9 @@ void WinCOFFStreamer::EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {
|
||||
}
|
||||
|
||||
void WinCOFFStreamer::BeginCOFFSymbolDef(MCSymbol const *Symbol) {
|
||||
assert((Symbol->isInSection()
|
||||
? Symbol->getSection().getVariant() == MCSection::SV_COFF
|
||||
: true) && "Got non COFF section in the COFF backend!");
|
||||
assert(CurSymbol == NULL && "EndCOFFSymbolDef must be called between calls "
|
||||
"to BeginCOFFSymbolDef!");
|
||||
CurSymbol = Symbol;
|
||||
@ -255,10 +265,16 @@ void WinCOFFStreamer::EmitELFSize(MCSymbol *Symbol, const MCExpr *Value) {
|
||||
|
||||
void WinCOFFStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlignment) {
|
||||
assert((Symbol->isInSection()
|
||||
? Symbol->getSection().getVariant() == MCSection::SV_COFF
|
||||
: true) && "Got non COFF section in the COFF backend!");
|
||||
AddCommonSymbol(Symbol, Size, ByteAlignment, true);
|
||||
}
|
||||
|
||||
void WinCOFFStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size) {
|
||||
assert((Symbol->isInSection()
|
||||
? Symbol->getSection().getVariant() == MCSection::SV_COFF
|
||||
: true) && "Got non COFF section in the COFF backend!");
|
||||
AddCommonSymbol(Symbol, Size, 1, false);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user