109467b48Spatrick //===- lib/MC/MCNullStreamer.cpp - Dummy Streamer Implementation ----------===//
209467b48Spatrick //
309467b48Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
409467b48Spatrick // See https://llvm.org/LICENSE.txt for license information.
509467b48Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
609467b48Spatrick //
709467b48Spatrick //===----------------------------------------------------------------------===//
809467b48Spatrick
909467b48Spatrick #include "llvm/ADT/StringRef.h"
10*d415bd75Srobert #include "llvm/MC/MCDirectives.h"
1109467b48Spatrick #include "llvm/MC/MCStreamer.h"
12*d415bd75Srobert #include "llvm/Support/SMLoc.h"
13*d415bd75Srobert namespace llvm {
14*d415bd75Srobert class MCContext;
15*d415bd75Srobert class MCExpr;
16*d415bd75Srobert class MCSection;
17*d415bd75Srobert class MCSymbol;
18*d415bd75Srobert } // namespace llvm
1909467b48Spatrick
2009467b48Spatrick using namespace llvm;
2109467b48Spatrick
2209467b48Spatrick namespace {
2309467b48Spatrick
2409467b48Spatrick class MCNullStreamer : public MCStreamer {
2509467b48Spatrick public:
MCNullStreamer(MCContext & Context)2609467b48Spatrick MCNullStreamer(MCContext &Context) : MCStreamer(Context) {}
2709467b48Spatrick
2809467b48Spatrick /// @name MCStreamer Interface
2909467b48Spatrick /// @{
3009467b48Spatrick
hasRawTextSupport() const3109467b48Spatrick bool hasRawTextSupport() const override { return true; }
emitRawTextImpl(StringRef String)32097a140dSpatrick void emitRawTextImpl(StringRef String) override {}
3309467b48Spatrick
emitSymbolAttribute(MCSymbol * Symbol,MCSymbolAttr Attribute)34097a140dSpatrick bool emitSymbolAttribute(MCSymbol *Symbol,
3509467b48Spatrick MCSymbolAttr Attribute) override {
3609467b48Spatrick return true;
3709467b48Spatrick }
3809467b48Spatrick
emitCommonSymbol(MCSymbol * Symbol,uint64_t Size,Align ByteAlignment)39097a140dSpatrick void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
40*d415bd75Srobert Align ByteAlignment) override {}
emitZerofill(MCSection * Section,MCSymbol * Symbol=nullptr,uint64_t Size=0,Align ByteAlignment=Align (1),SMLoc Loc=SMLoc ())41097a140dSpatrick void emitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
42*d415bd75Srobert uint64_t Size = 0, Align ByteAlignment = Align(1),
4309467b48Spatrick SMLoc Loc = SMLoc()) override {}
emitGPRel32Value(const MCExpr * Value)44097a140dSpatrick void emitGPRel32Value(const MCExpr *Value) override {}
beginCOFFSymbolDef(const MCSymbol * Symbol)45*d415bd75Srobert void beginCOFFSymbolDef(const MCSymbol *Symbol) override {}
emitCOFFSymbolStorageClass(int StorageClass)46*d415bd75Srobert void emitCOFFSymbolStorageClass(int StorageClass) override {}
emitCOFFSymbolType(int Type)47*d415bd75Srobert void emitCOFFSymbolType(int Type) override {}
endCOFFSymbolDef()48*d415bd75Srobert void endCOFFSymbolDef() override {}
49*d415bd75Srobert void
emitXCOFFSymbolLinkageWithVisibility(MCSymbol * Symbol,MCSymbolAttr Linkage,MCSymbolAttr Visibility)50*d415bd75Srobert emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage,
51*d415bd75Srobert MCSymbolAttr Visibility) override {}
5209467b48Spatrick };
5309467b48Spatrick
5409467b48Spatrick }
5509467b48Spatrick
createNullStreamer(MCContext & Context)5609467b48Spatrick MCStreamer *llvm::createNullStreamer(MCContext &Context) {
5709467b48Spatrick return new MCNullStreamer(Context);
5809467b48Spatrick }
59