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