LLVM  14.0.0git
MCNullStreamer.cpp
Go to the documentation of this file.
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/MCInst.h"
11 #include "llvm/MC/MCStreamer.h"
12 #include "llvm/MC/MCSymbol.h"
13 
14 using namespace llvm;
15 
16 namespace {
17 
18  class MCNullStreamer : public MCStreamer {
19  public:
20  MCNullStreamer(MCContext &Context) : MCStreamer(Context) {}
21 
22  /// @name MCStreamer Interface
23  /// @{
24 
25  bool hasRawTextSupport() const override { return true; }
26  void emitRawTextImpl(StringRef String) override {}
27 
28  bool emitSymbolAttribute(MCSymbol *Symbol,
29  MCSymbolAttr Attribute) override {
30  return true;
31  }
32 
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 {}
43  };
44 
45 }
46 
48  return new MCNullStreamer(Context);
49 }
llvm::Check::Size
@ Size
Definition: FileCheck.h:73
llvm
---------------------— PointerInfo ------------------------------------—
Definition: AllocatorList.h:23
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
llvm::MCContext
Context object for machine code objects.
Definition: MCContext.h:72
llvm::Attribute
Definition: Attributes.h:52
StringRef.h
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
llvm::MCSymbolAttr
MCSymbolAttr
Definition: MCDirectives.h:18
Context
LLVMContext & Context
Definition: NVVMIntrRange.cpp:66
llvm::ARMBuildAttrs::Section
@ Section
Legacy Tags.
Definition: ARMBuildAttributes.h:78
llvm::MCStreamer
Streaming machine code generation interface.
Definition: MCStreamer.h:199
llvm::SMLoc
Represents a location in source code.
Definition: SMLoc.h:23
MCSymbol.h
MCInst.h
llvm::XCOFF::StorageClass
StorageClass
Definition: XCOFF.h:113
uint64_t
llvm::createNullStreamer
MCStreamer * createNullStreamer(MCContext &Ctx)
Create a dummy machine code streamer, which does nothing.
Definition: MCNullStreamer.cpp:47
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::MCSection
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Definition: MCSection.h:39
llvm::LCOMM::ByteAlignment
@ ByteAlignment
Definition: MCAsmInfo.h:50
llvm::ARMBuildAttrs::Symbol
@ Symbol
Definition: ARMBuildAttributes.h:79
MCStreamer.h
llvm::Value
LLVM Value Representation.
Definition: Value.h:75
llvm::MCExpr
Base class for the full range of assembler expressions which are needed for parsing.
Definition: MCExpr.h:35