1 //===- lib/MC/MCNullStreamer.cpp - Dummy Streamer Implementation ----------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "llvm/ADT/StringRef.h" 10 #include "llvm/MC/MCInst.h" 11 #include "llvm/MC/MCStreamer.h" 12 #include "llvm/MC/MCSymbol.h" 13 14 using namespace llvm; 15 16 namespace { 17 18 class MCNullStreamer : public MCStreamer { 19 public: 20 MCNullStreamer(MCContext &Context) : MCStreamer(Context) {} 21 22 /// @name MCStreamer Interface 23 /// @{ 24 25 bool hasRawTextSupport() const override { return true; } 26 void emitRawTextImpl(StringRef String) override {} 27 28 bool emitSymbolAttribute(MCSymbol *Symbol, 29 MCSymbolAttr Attribute) override { 30 return true; 31 } 32 33 void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size, 34 unsigned ByteAlignment) override {} 35 void emitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr, 36 uint64_t Size = 0, unsigned ByteAlignment = 0, 37 SMLoc Loc = SMLoc()) override {} 38 void emitGPRel32Value(const MCExpr *Value) override {} 39 void BeginCOFFSymbolDef(const MCSymbol *Symbol) override {} 40 void EmitCOFFSymbolStorageClass(int StorageClass) override {} 41 void EmitCOFFSymbolType(int Type) override {} 42 void EndCOFFSymbolDef() override {} 43 }; 44 45 } 46 47 MCStreamer *llvm::createNullStreamer(MCContext &Context) { 48 return new MCNullStreamer(Context); 49 } 50