1 //===- lib/MC/MCNullStreamer.cpp - Dummy Streamer Implementation ----------===//
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
7 //===----------------------------------------------------------------------===//
9 #include "llvm/ADT/StringRef.h"
10 #include "llvm/MC/MCInst.h"
11 #include "llvm/MC/MCStreamer.h"
12 #include "llvm/MC/MCSymbol.h"
18 class MCNullStreamer
: public MCStreamer
{
20 MCNullStreamer(MCContext
&Context
) : MCStreamer(Context
) {}
22 /// @name MCStreamer Interface
25 bool hasRawTextSupport() const override
{ return true; }
26 void EmitRawTextImpl(StringRef String
) override
{}
28 bool EmitSymbolAttribute(MCSymbol
*Symbol
,
29 MCSymbolAttr Attribute
) override
{
33 void EmitCommonSymbol(MCSymbol
*Symbol
, uint64_t Size
,
34 unsigned ByteAlignment
) override
{}
35 void EmitZerofill(MCSection
*Section
, MCSymbol
*Symbol
= nullptr,
36 uint64_t Size
= 0, unsigned ByteAlignment
= 0,
37 SMLoc Loc
= SMLoc()) override
{}
38 void EmitGPRel32Value(const MCExpr
*Value
) override
{}
39 void BeginCOFFSymbolDef(const MCSymbol
*Symbol
) override
{}
40 void EmitCOFFSymbolStorageClass(int StorageClass
) override
{}
41 void EmitCOFFSymbolType(int Type
) override
{}
42 void EndCOFFSymbolDef() override
{}
47 MCStreamer
*llvm::createNullStreamer(MCContext
&Context
) {
48 return new MCNullStreamer(Context
);