Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:44:13

0001 //===- MCGOFFObjectWriter.h - GOFF Object Writer ----------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_MC_MCGOFFOBJECTWRITER_H
0010 #define LLVM_MC_MCGOFFOBJECTWRITER_H
0011 
0012 #include "llvm/MC/MCObjectWriter.h"
0013 
0014 namespace llvm {
0015 class MCObjectWriter;
0016 class raw_pwrite_stream;
0017 
0018 class MCGOFFObjectTargetWriter : public MCObjectTargetWriter {
0019 protected:
0020   MCGOFFObjectTargetWriter() = default;
0021 
0022 public:
0023   virtual ~MCGOFFObjectTargetWriter() = default;
0024 
0025   Triple::ObjectFormatType getFormat() const override { return Triple::GOFF; }
0026 
0027   static bool classof(const MCObjectTargetWriter *W) {
0028     return W->getFormat() == Triple::GOFF;
0029   }
0030 };
0031 
0032 /// \brief Construct a new GOFF writer instance.
0033 ///
0034 /// \param MOTW - The target-specific GOFF writer subclass.
0035 /// \param OS - The stream to write to.
0036 /// \returns The constructed object writer.
0037 std::unique_ptr<MCObjectWriter>
0038 createGOFFObjectWriter(std::unique_ptr<MCGOFFObjectTargetWriter> MOTW,
0039                        raw_pwrite_stream &OS);
0040 } // namespace llvm
0041 
0042 #endif