mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-02 15:51:54 +00:00
[MC] Factor out non-COFF handling of COFF-specific directives.
Instead of requiring every non-COFF MCObjectStreamer to implement the COFF hooks just to do an llvm_unreachable to say that they're not supported, do the llvm_unreachable in the default implementation, as suggested by rnk in https://reviews.llvm.org/D26722. llvm-svn: 296403
This commit is contained in:
parent
df23c64a6a
commit
48b9ccfac2
@ -49,10 +49,6 @@ public:
|
||||
void EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) override;
|
||||
void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlignment) override;
|
||||
void BeginCOFFSymbolDef(const MCSymbol *Symbol) override;
|
||||
void EmitCOFFSymbolStorageClass(int StorageClass) override;
|
||||
void EmitCOFFSymbolType(int Type) override;
|
||||
void EndCOFFSymbolDef() override;
|
||||
|
||||
void emitELFSize(MCSymbol *Symbol, const MCExpr *Value) override;
|
||||
|
||||
|
@ -49,10 +49,6 @@ public:
|
||||
void EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) override;
|
||||
void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlignment) override;
|
||||
void BeginCOFFSymbolDef(const MCSymbol *Symbol) override;
|
||||
void EmitCOFFSymbolStorageClass(int StorageClass) override;
|
||||
void EmitCOFFSymbolType(int Type) override;
|
||||
void EndCOFFSymbolDef() override;
|
||||
|
||||
void emitELFSize(MCSymbol *Symbol, const MCExpr *Value) override;
|
||||
|
||||
|
@ -625,22 +625,6 @@ void MCELFStreamer::EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {
|
||||
llvm_unreachable("ELF doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCELFStreamer::BeginCOFFSymbolDef(const MCSymbol *Symbol) {
|
||||
llvm_unreachable("ELF doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCELFStreamer::EmitCOFFSymbolStorageClass(int StorageClass) {
|
||||
llvm_unreachable("ELF doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCELFStreamer::EmitCOFFSymbolType(int Type) {
|
||||
llvm_unreachable("ELF doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCELFStreamer::EndCOFFSymbolDef() {
|
||||
llvm_unreachable("ELF doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCELFStreamer::EmitZerofill(MCSection *Section, MCSymbol *Symbol,
|
||||
uint64_t Size, unsigned ByteAlignment) {
|
||||
llvm_unreachable("ELF doesn't support this directive");
|
||||
|
@ -92,22 +92,6 @@ public:
|
||||
void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlignment) override;
|
||||
|
||||
void BeginCOFFSymbolDef(const MCSymbol *Symbol) override {
|
||||
llvm_unreachable("macho doesn't support this directive");
|
||||
}
|
||||
|
||||
void EmitCOFFSymbolStorageClass(int StorageClass) override {
|
||||
llvm_unreachable("macho doesn't support this directive");
|
||||
}
|
||||
|
||||
void EmitCOFFSymbolType(int Type) override {
|
||||
llvm_unreachable("macho doesn't support this directive");
|
||||
}
|
||||
|
||||
void EndCOFFSymbolDef() override {
|
||||
llvm_unreachable("macho doesn't support this directive");
|
||||
}
|
||||
|
||||
void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlignment) override;
|
||||
void EmitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
|
||||
|
@ -807,11 +807,19 @@ void MCStreamer::emitAbsoluteSymbolDiff(const MCSymbol *Hi, const MCSymbol *Lo,
|
||||
void MCStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {}
|
||||
void MCStreamer::EmitThumbFunc(MCSymbol *Func) {}
|
||||
void MCStreamer::EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {}
|
||||
void MCStreamer::BeginCOFFSymbolDef(const MCSymbol *Symbol) {}
|
||||
void MCStreamer::EndCOFFSymbolDef() {}
|
||||
void MCStreamer::BeginCOFFSymbolDef(const MCSymbol *Symbol) {
|
||||
llvm_unreachable("this directive only supported on COFF targets");
|
||||
}
|
||||
void MCStreamer::EndCOFFSymbolDef() {
|
||||
llvm_unreachable("this directive only supported on COFF targets");
|
||||
}
|
||||
void MCStreamer::EmitFileDirective(StringRef Filename) {}
|
||||
void MCStreamer::EmitCOFFSymbolStorageClass(int StorageClass) {}
|
||||
void MCStreamer::EmitCOFFSymbolType(int Type) {}
|
||||
void MCStreamer::EmitCOFFSymbolStorageClass(int StorageClass) {
|
||||
llvm_unreachable("this directive only supported on COFF targets");
|
||||
}
|
||||
void MCStreamer::EmitCOFFSymbolType(int Type) {
|
||||
llvm_unreachable("this directive only supported on COFF targets");
|
||||
}
|
||||
void MCStreamer::emitELFSize(MCSymbol *Symbol, const MCExpr *Value) {}
|
||||
void MCStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlignment) {}
|
||||
|
@ -212,22 +212,6 @@ void MCWasmStreamer::EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {
|
||||
llvm_unreachable("Wasm doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCWasmStreamer::BeginCOFFSymbolDef(const MCSymbol *Symbol) {
|
||||
llvm_unreachable("Wasm doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCWasmStreamer::EmitCOFFSymbolStorageClass(int StorageClass) {
|
||||
llvm_unreachable("Wasm doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCWasmStreamer::EmitCOFFSymbolType(int Type) {
|
||||
llvm_unreachable("Wasm doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCWasmStreamer::EndCOFFSymbolDef() {
|
||||
llvm_unreachable("Wasm doesn't support this directive");
|
||||
}
|
||||
|
||||
void MCWasmStreamer::EmitZerofill(MCSection *Section, MCSymbol *Symbol,
|
||||
uint64_t Size, unsigned ByteAlignment) {
|
||||
llvm_unreachable("Wasm doesn't support this directive");
|
||||
|
Loading…
x
Reference in New Issue
Block a user