LLVM 19.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
11#include "llvm/MC/MCStreamer.h"
12#include "llvm/Support/SMLoc.h"
13namespace llvm {
14class MCContext;
15class MCExpr;
16class MCSection;
17class MCSymbol;
18} // namespace llvm
19
20using namespace llvm;
21
22namespace {
23
24 class MCNullStreamer : public MCStreamer {
25 public:
26 MCNullStreamer(MCContext &Context) : MCStreamer(Context) {}
27
28 /// @name MCStreamer Interface
29 /// @{
30
31 bool hasRawTextSupport() const override { return true; }
32 void emitRawTextImpl(StringRef String) override {}
33
34 bool emitSymbolAttribute(MCSymbol *Symbol,
35 MCSymbolAttr Attribute) override {
36 return true;
37 }
38
39 void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
40 Align ByteAlignment) override {}
41 void emitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
42 uint64_t Size = 0, Align ByteAlignment = Align(1),
43 SMLoc Loc = SMLoc()) override {}
44 void emitGPRel32Value(const MCExpr *Value) override {}
45 void beginCOFFSymbolDef(const MCSymbol *Symbol) override {}
46 void emitCOFFSymbolStorageClass(int StorageClass) override {}
47 void emitCOFFSymbolType(int Type) override {}
48 void endCOFFSymbolDef() override {}
49 void
50 emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage,
51 MCSymbolAttr Visibility) override {}
52 };
53
54}
55
57 return new MCNullStreamer(Context);
58}
uint64_t Size
Context object for machine code objects.
Definition: MCContext.h:81
Base class for the full range of assembler expressions which are needed for parsing.
Definition: MCExpr.h:35
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Definition: MCSection.h:35
Streaming machine code generation interface.
Definition: MCStreamer.h:212
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:40
Represents a location in source code.
Definition: SMLoc.h:23
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
LLVM Value Representation.
Definition: Value.h:74
StorageClass
Definition: XCOFF.h:170
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
MCStreamer * createNullStreamer(MCContext &Ctx)
Create a dummy machine code streamer, which does nothing.
MCSymbolAttr
Definition: MCDirectives.h:18
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition: Alignment.h:39