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:
MCNullStreamer(MCContext & Context)25 MCNullStreamer(MCContext &Context) : MCStreamer(Context) {}
26
27 /// @name MCStreamer Interface
28 /// @{
29
hasRawTextSupport() const30 bool hasRawTextSupport() const override { return true; }
emitRawTextImpl(StringRef String)31 void emitRawTextImpl(StringRef String) override {}
32
emitSymbolAttribute(MCSymbol * Symbol,MCSymbolAttr Attribute)33 bool emitSymbolAttribute(MCSymbol *Symbol,
34 MCSymbolAttr Attribute) override {
35 return true;
36 }
37
emitCommonSymbol(MCSymbol * Symbol,uint64_t Size,Align ByteAlignment)38 void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
39 Align ByteAlignment) override {}
emitSubsectionsViaSymbols()40 void emitSubsectionsViaSymbols() override {};
beginCOFFSymbolDef(const MCSymbol * Symbol)41 void beginCOFFSymbolDef(const MCSymbol *Symbol) override {}
emitCOFFSymbolStorageClass(int StorageClass)42 void emitCOFFSymbolStorageClass(int StorageClass) override {}
emitCOFFSymbolType(int Type)43 void emitCOFFSymbolType(int Type) override {}
endCOFFSymbolDef()44 void endCOFFSymbolDef() override {}
45 void
emitXCOFFSymbolLinkageWithVisibility(MCSymbol * Symbol,MCSymbolAttr Linkage,MCSymbolAttr Visibility)46 emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage,
47 MCSymbolAttr Visibility) override {}
48 };
49
50 }
51
createNullStreamer(MCContext & Context)52 MCStreamer *llvm::createNullStreamer(MCContext &Context) {
53 return new MCNullStreamer(Context);
54 }
55