1//===- MCGOFFObjectWriter.h - GOFF Object Writer ----------------*- C++ -*-===//
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#ifndef LLVM_MC_MCGOFFOBJECTWRITER_H
10#define LLVM_MC_MCGOFFOBJECTWRITER_H
11
12#include "llvm/MC/MCObjectWriter.h"
13
14namespace llvm {
15class MCObjectWriter;
16class raw_pwrite_stream;
17
18class MCGOFFObjectTargetWriter : public MCObjectTargetWriter {
19protected:
20 MCGOFFObjectTargetWriter() = default;
21
22public:
23 virtual ~MCGOFFObjectTargetWriter() = default;
24
25 Triple::ObjectFormatType getFormat() const override { return Triple::GOFF; }
26
27 static bool classof(const MCObjectTargetWriter *W) {
28 return W->getFormat() == Triple::GOFF;
29 }
30};
31
32/// \brief Construct a new GOFF writer instance.
33///
34/// \param MOTW - The target-specific GOFF writer subclass.
35/// \param OS - The stream to write to.
36/// \returns The constructed object writer.
37std::unique_ptr<MCObjectWriter>
38createGOFFObjectWriter(std::unique_ptr<MCGOFFObjectTargetWriter> MOTW,
39 raw_pwrite_stream &OS);
40} // namespace llvm
41
42#endif
43

source code of llvm/include/llvm/MC/MCGOFFObjectWriter.h