From b746531c2ccfc2dca4ce441d719258dbd6e60255 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sun, 28 Nov 2010 15:09:24 +0000 Subject: [PATCH] Avoid code duplication in the many unsupported EmitGPRel32Value implementations. llvm-svn: 120243 --- llvm/include/llvm/MC/MCStreamer.h | 2 +- llvm/lib/MC/MCELFStreamer.cpp | 3 --- llvm/lib/MC/MCMachOStreamer.cpp | 3 --- llvm/lib/MC/MCPureStreamer.cpp | 3 --- llvm/lib/MC/MCStreamer.cpp | 4 ++++ llvm/lib/MC/WinCOFFStreamer.cpp | 5 ----- 6 files changed, 5 insertions(+), 15 deletions(-) diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h index 9cd615adeb87..7e3fe6654029 100644 --- a/llvm/include/llvm/MC/MCStreamer.h +++ b/llvm/include/llvm/MC/MCStreamer.h @@ -274,7 +274,7 @@ namespace llvm { /// /// This is used to implement assembler directives such as .gprel32 on /// targets that support them. - virtual void EmitGPRel32Value(const MCExpr *Value) = 0; + virtual void EmitGPRel32Value(const MCExpr *Value); /// EmitFill - Emit NumBytes bytes worth of the value specified by /// FillValue. This implements directives such as '.space'. diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp index 5b707cb21893..2e0d85a1e2db 100644 --- a/llvm/lib/MC/MCELFStreamer.cpp +++ b/llvm/lib/MC/MCELFStreamer.cpp @@ -125,9 +125,6 @@ public: } virtual void EmitBytes(StringRef Data, unsigned AddrSpace); virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace); - virtual void EmitGPRel32Value(const MCExpr *Value) { - assert(0 && "ELF doesn't support this directive"); - } virtual void EmitValueToAlignment(unsigned ByteAlignment, int64_t Value = 0, unsigned ValueSize = 1, unsigned MaxBytesToEmit = 0); diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp index 39b1d4fd4ae9..3f93604caafe 100644 --- a/llvm/lib/MC/MCMachOStreamer.cpp +++ b/llvm/lib/MC/MCMachOStreamer.cpp @@ -75,9 +75,6 @@ public: uint64_t Size, unsigned ByteAlignment = 0); virtual void EmitBytes(StringRef Data, unsigned AddrSpace); virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace); - virtual void EmitGPRel32Value(const MCExpr *Value) { - assert(0 && "macho doesn't support this directive"); - } virtual void EmitValueToAlignment(unsigned ByteAlignment, int64_t Value = 0, unsigned ValueSize = 1, unsigned MaxBytesToEmit = 0); diff --git a/llvm/lib/MC/MCPureStreamer.cpp b/llvm/lib/MC/MCPureStreamer.cpp index 2dfb389f092f..ad365d981a32 100644 --- a/llvm/lib/MC/MCPureStreamer.cpp +++ b/llvm/lib/MC/MCPureStreamer.cpp @@ -91,9 +91,6 @@ public: virtual void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size) { report_fatal_error("unsupported directive in pure streamer"); } - virtual void EmitGPRel32Value(const MCExpr *Value) { - report_fatal_error("unsupported directive in pure streamer"); - } virtual void EmitFileDirective(StringRef Filename) { report_fatal_error("unsupported directive in pure streamer"); } diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index 69318ea35430..7921957f5423 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -55,6 +55,10 @@ void MCStreamer::EmitSymbolValue(const MCSymbol *Sym, unsigned Size, EmitValue(MCSymbolRefExpr::Create(Sym, getContext()), Size, AddrSpace); } +void MCStreamer::EmitGPRel32Value(const MCExpr *Value) { + report_fatal_error("unsupported directive in streamer"); +} + /// EmitFill - Emit NumBytes bytes worth of the value specified by /// FillValue. This implements directives such as '.space'. void MCStreamer::EmitFill(uint64_t NumBytes, uint8_t FillValue, diff --git a/llvm/lib/MC/WinCOFFStreamer.cpp b/llvm/lib/MC/WinCOFFStreamer.cpp index 0f0224891d59..cba71882676a 100644 --- a/llvm/lib/MC/WinCOFFStreamer.cpp +++ b/llvm/lib/MC/WinCOFFStreamer.cpp @@ -70,7 +70,6 @@ public: virtual void EmitBytes(StringRef Data, unsigned AddrSpace); virtual void EmitValue(const MCExpr *Value, unsigned Size, unsigned AddrSpace); - virtual void EmitGPRel32Value(const MCExpr *Value); virtual void EmitValueToAlignment(unsigned ByteAlignment, int64_t Value, unsigned ValueSize, unsigned MaxBytesToEmit); virtual void EmitCodeAlignment(unsigned ByteAlignment, @@ -368,10 +367,6 @@ void WinCOFFStreamer::EmitValue(const MCExpr *Value, unsigned Size, } } -void WinCOFFStreamer::EmitGPRel32Value(const MCExpr *Value) { - llvm_unreachable("not implemented"); -} - void WinCOFFStreamer::EmitValueToAlignment(unsigned ByteAlignment, int64_t Value, unsigned ValueSize,