xref: /freebsd/contrib/llvm-project/llvm/lib/MC/MCNullStreamer.cpp (revision 700637cbb5e582861067a11aaca4d053546871d2)
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