1198090Srdivacky//===- lib/MC/MCNullStreamer.cpp - Dummy Streamer Implementation ----------===//
2198090Srdivacky//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6198090Srdivacky//
7198090Srdivacky//===----------------------------------------------------------------------===//
8198090Srdivacky
9344779Sdim#include "llvm/ADT/StringRef.h"
10198090Srdivacky#include "llvm/MC/MCInst.h"
11321369Sdim#include "llvm/MC/MCStreamer.h"
12198090Srdivacky#include "llvm/MC/MCSymbol.h"
13198090Srdivacky
14198090Srdivackyusing namespace llvm;
15198090Srdivacky
16198090Srdivackynamespace {
17198090Srdivacky
18198090Srdivacky  class MCNullStreamer : public MCStreamer {
19198090Srdivacky  public:
20276479Sdim    MCNullStreamer(MCContext &Context) : MCStreamer(Context) {}
21198090Srdivacky
22198090Srdivacky    /// @name MCStreamer Interface
23198090Srdivacky    /// @{
24198090Srdivacky
25344779Sdim    bool hasRawTextSupport() const override { return true; }
26344779Sdim    void EmitRawTextImpl(StringRef String) override {}
27344779Sdim
28276479Sdim    bool EmitSymbolAttribute(MCSymbol *Symbol,
29276479Sdim                             MCSymbolAttr Attribute) override {
30261991Sdim      return true;
31261991Sdim    }
32198090Srdivacky
33276479Sdim    void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
34276479Sdim                          unsigned ByteAlignment) override {}
35288943Sdim    void EmitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
36341825Sdim                      uint64_t Size = 0, unsigned ByteAlignment = 0,
37341825Sdim                      SMLoc Loc = SMLoc()) override {}
38276479Sdim    void EmitGPRel32Value(const MCExpr *Value) override {}
39321369Sdim    void BeginCOFFSymbolDef(const MCSymbol *Symbol) override {}
40321369Sdim    void EmitCOFFSymbolStorageClass(int StorageClass) override {}
41321369Sdim    void EmitCOFFSymbolType(int Type) override {}
42321369Sdim    void EndCOFFSymbolDef() override {}
43198090Srdivacky  };
44198090Srdivacky
45198090Srdivacky}
46239462Sdim
47198090SrdivackyMCStreamer *llvm::createNullStreamer(MCContext &Context) {
48198090Srdivacky  return new MCNullStreamer(Context);
49198090Srdivacky}
50