#pragma once #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #endif //===- MCXCOFFObjectStreamer.h - MCStreamer XCOFF Object File Interface ---===// // // 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 // //===----------------------------------------------------------------------===// #ifndef LLVM_MC_MCXCOFFSTREAMER_H #define LLVM_MC_MCXCOFFSTREAMER_H #include "llvm/MC/MCObjectStreamer.h" namespace llvm { class MCXCOFFStreamer : public MCObjectStreamer { public: MCXCOFFStreamer(MCContext &Context, std::unique_ptr MAB, std::unique_ptr OW, std::unique_ptr Emitter); bool emitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override; 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 emitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override; void emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym, uint64_t Size, MCSymbol *CsectSym, Align Alignment) override; void emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage, MCSymbolAttr Visibility) override; void emitXCOFFRefDirective(StringRef Name) override { report_fatal_error("emitXCOFFRefDirective is not implemented yet on object" "generation path"); } void emitXCOFFRenameDirective(const MCSymbol *Name, StringRef Rename) override { report_fatal_error("emitXCOFFRenameDirective is not implemented yet on " "object generation path"); } void emitXCOFFExceptDirective(const MCSymbol *Symbol, const MCSymbol *Trap, unsigned Lang, unsigned Reason, unsigned FunctionSize, bool hasDebug) override; }; } // end namespace llvm #endif // LLVM_MC_MCXCOFFSTREAMER_H #ifdef __GNUC__ #pragma GCC diagnostic pop #endif