Skip to content

Commit 7810f30

Browse files
committed
Make GOFFObjectWriter public
1 parent d335054 commit 7810f30

File tree

4 files changed

+33
-22
lines changed

4 files changed

+33
-22
lines changed

llvm/include/llvm/MC/MCGOFFObjectWriter.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#define LLVM_MC_MCGOFFOBJECTWRITER_H
1111

1212
#include "llvm/MC/MCObjectWriter.h"
13+
#include "llvm/MC/MCValue.h"
1314

1415
namespace llvm {
1516
class MCObjectWriter;
@@ -29,6 +30,26 @@ class MCGOFFObjectTargetWriter : public MCObjectTargetWriter {
2930
}
3031
};
3132

33+
class GOFFObjectWriter : public MCObjectWriter {
34+
// The target specific GOFF writer instance.
35+
std::unique_ptr<MCGOFFObjectTargetWriter> TargetObjectWriter;
36+
37+
// The stream used to write the GOFF records.
38+
raw_pwrite_stream &OS;
39+
40+
public:
41+
GOFFObjectWriter(std::unique_ptr<MCGOFFObjectTargetWriter> MOTW,
42+
raw_pwrite_stream &OS);
43+
~GOFFObjectWriter() override;
44+
45+
// Implementation of the MCObjectWriter interface.
46+
void recordRelocation(MCAssembler &Asm, const MCFragment *Fragment,
47+
const MCFixup &Fixup, MCValue Target,
48+
uint64_t &FixedValue) override {}
49+
50+
uint64_t writeObject(MCAssembler &Asm) override;
51+
};
52+
3253
/// \brief Construct a new GOFF writer instance.
3354
///
3455
/// \param MOTW - The target-specific GOFF writer subclass.

llvm/include/llvm/MC/MCGOFFStreamer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "llvm/MC/MCObjectWriter.h"
1414

1515
namespace llvm {
16+
class GOFFObjectWriter;
1617

1718
class MCGOFFStreamer : public MCObjectStreamer {
1819
public:
@@ -24,6 +25,8 @@ class MCGOFFStreamer : public MCObjectStreamer {
2425

2526
~MCGOFFStreamer() override;
2627

28+
GOFFObjectWriter &getWriter();
29+
2730
bool emitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override {
2831
return false;
2932
}

llvm/lib/MC/GOFFObjectWriter.cpp

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -284,29 +284,11 @@ uint64_t GOFFWriter::writeObject() {
284284
return OS.getWrittenSize();
285285
}
286286

287-
namespace {
288-
289-
class GOFFObjectWriter : public MCObjectWriter {
290-
// The target specific GOFF writer instance.
291-
std::unique_ptr<MCGOFFObjectTargetWriter> TargetObjectWriter;
292-
293-
// The stream used to write the GOFF records.
294-
raw_pwrite_stream &OS;
287+
GOFFObjectWriter::GOFFObjectWriter(
288+
std::unique_ptr<MCGOFFObjectTargetWriter> MOTW, raw_pwrite_stream &OS)
289+
: TargetObjectWriter(std::move(MOTW)), OS(OS) {}
295290

296-
public:
297-
GOFFObjectWriter(std::unique_ptr<MCGOFFObjectTargetWriter> MOTW,
298-
raw_pwrite_stream &OS)
299-
: TargetObjectWriter(std::move(MOTW)), OS(OS) {}
300-
301-
~GOFFObjectWriter() override {}
302-
303-
// Implementation of the MCObjectWriter interface.
304-
void recordRelocation(MCAssembler &Asm, const MCFragment *Fragment,
305-
const MCFixup &Fixup, MCValue Target,
306-
uint64_t &FixedValue) override {}
307-
uint64_t writeObject(MCAssembler &Asm) override;
308-
};
309-
} // end anonymous namespace
291+
GOFFObjectWriter::~GOFFObjectWriter() {}
310292

311293
uint64_t GOFFObjectWriter::writeObject(MCAssembler &Asm) {
312294
uint64_t Size = GOFFWriter(OS, Asm).writeObject();

llvm/lib/MC/MCGOFFStreamer.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,17 @@
1515
#include "llvm/MC/MCAssembler.h"
1616
#include "llvm/MC/MCCodeEmitter.h"
1717
#include "llvm/MC/MCContext.h"
18+
#include "llvm/MC/MCGOFFObjectWriter.h"
1819
#include "llvm/MC/TargetRegistry.h"
1920

2021
using namespace llvm;
2122

2223
MCGOFFStreamer::~MCGOFFStreamer() {}
2324

25+
GOFFObjectWriter &MCGOFFStreamer::getWriter() {
26+
return static_cast<GOFFObjectWriter &>(getAssembler().getWriter());
27+
}
28+
2429
MCStreamer *llvm::createGOFFStreamer(MCContext &Context,
2530
std::unique_ptr<MCAsmBackend> &&MAB,
2631
std::unique_ptr<MCObjectWriter> &&OW,

0 commit comments

Comments
 (0)