LLVM  10.0.0svn
MCXCOFFObjectWriter.h
Go to the documentation of this file.
1 //===-- llvm/MC/MCXCOFFObjectWriter.h - XCOFF Object Writer ---------------===//
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_MCXCOFFOBJECTWRITER_H
10 #define LLVM_MC_MCXCOFFOBJECTWRITER_H
11 
12 #include "llvm/MC/MCObjectWriter.h"
13 
14 namespace llvm {
15 
16 class raw_pwrite_stream;
17 
19 protected:
20  MCXCOFFObjectTargetWriter(bool Is64Bit);
21 
22 public:
23  ~MCXCOFFObjectTargetWriter() override;
24 
25  Triple::ObjectFormatType getFormat() const override { return Triple::XCOFF; }
26  static bool classof(const MCObjectTargetWriter *W) {
27  return W->getFormat() == Triple::XCOFF;
28  }
29  bool is64Bit() const { return Is64Bit; }
30 
31 private:
32  bool Is64Bit;
33 };
34 
35 std::unique_ptr<MCObjectWriter>
36 createXCOFFObjectWriter(std::unique_ptr<MCXCOFFObjectTargetWriter> MOTW,
37  raw_pwrite_stream &OS);
38 
39 } // end namespace llvm
40 
41 #endif // LLVM_MC_MCXCOFFOBJECTWRITER_H
This class represents lattice values for constants.
Definition: AllocatorList.h:23
static bool classof(const MCObjectTargetWriter *W)
virtual Triple::ObjectFormatType getFormat() const =0
std::unique_ptr< MCObjectWriter > createXCOFFObjectWriter(std::unique_ptr< MCXCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
Triple::ObjectFormatType getFormat() const override
Base class for classes that define behaviour that is specific to both the target and the object forma...
An abstract base class for streams implementations that also support a pwrite operation.
Definition: raw_ostream.h:359
ObjectFormatType
Definition: Triple.h:221