| //===- lib/MC/MCNullStreamer.cpp - Dummy Streamer Implementation ----------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "llvm/ADT/StringRef.h" | |
| #include "llvm/MC/MCDirectives.h" | |
| #include "llvm/MC/MCStreamer.h" | |
| #include "llvm/Support/SMLoc.h" | |
| namespace llvm { | |
| class MCContext; | |
| class MCExpr; | |
| class MCSection; | |
| class MCSymbol; | |
| } // namespace llvm | |
| using namespace llvm; | |
| namespace { | |
| class MCNullStreamer : public MCStreamer { | |
| public: | |
| MCNullStreamer(MCContext &Context) : MCStreamer(Context) {} | |
| /// @name MCStreamer Interface | |
| /// @{ | |
| bool hasRawTextSupport() const override { return true; } | |
| void emitRawTextImpl(StringRef String) override {} | |
| bool emitSymbolAttribute(MCSymbol *Symbol, | |
| MCSymbolAttr Attribute) override { | |
| return true; | |
| } | |
| void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size, | |
| Align ByteAlignment) override {} | |
| void emitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr, | |
| uint64_t Size = 0, Align ByteAlignment = Align(1), | |
| SMLoc Loc = SMLoc()) override {} | |
| void emitGPRel32Value(const MCExpr *Value) override {} | |
| void beginCOFFSymbolDef(const MCSymbol *Symbol) override {} | |
| void emitCOFFSymbolStorageClass(int StorageClass) override {} | |
| void emitCOFFSymbolType(int Type) override {} | |
| void endCOFFSymbolDef() override {} | |
| void | |
| emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage, | |
| MCSymbolAttr Visibility) override {} | |
| }; | |
| } | |
| MCStreamer *llvm::createNullStreamer(MCContext &Context) { | |
| return new MCNullStreamer(Context); | |
| } |