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/MCDirectives.h" 11 #include "llvm/MC/MCStreamer.h" 12 namespace llvm { 13 class MCContext; 14 class MCExpr; 15 class MCSection; 16 class MCSymbol; 17 } // namespace llvm 18 19 using namespace llvm; 20 21 namespace { 22 23 class MCNullStreamer : public MCStreamer { 24 public: 25 MCNullStreamer(MCContext &Context) : MCStreamer(Context) {} 26 27 /// @name MCStreamer Interface 28 /// @{ 29 30 bool hasRawTextSupport() const override { return true; } 31 void emitRawTextImpl(StringRef String) override {} 32 33 bool emitSymbolAttribute(MCSymbol *Symbol, 34 MCSymbolAttr Attribute) override { 35 return true; 36 } 37 38 void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size, 39 Align ByteAlignment) override {} 40 void emitSubsectionsViaSymbols() override {}; 41 void beginCOFFSymbolDef(const MCSymbol *Symbol) override {} 42 void emitCOFFSymbolStorageClass(int StorageClass) override {} 43 void emitCOFFSymbolType(int Type) override {} 44 void endCOFFSymbolDef() override {} 45 void 46 emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage, 47 MCSymbolAttr Visibility) override {} 48 }; 49 50 } 51 52 MCStreamer *llvm::createNullStreamer(MCContext &Context) { 53 return new MCNullStreamer(Context); 54 } 55