Skip to content

Commit 7e696cf

Browse files
committed
Fix static_cast, move AIX specific code into XCOFFObjectWriter
1 parent 06119fa commit 7e696cf

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

llvm/include/llvm/MC/MCAssembler.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,6 @@ class MCAssembler {
229229
}
230230

231231
void setCPU(std::string TargetCPU) { CPU = std::move(TargetCPU); }
232-
StringRef getCPU() const { return CPU; }
233232

234233
bool registerSection(MCSection &Section);
235234
bool registerSymbol(const MCSymbol &Symbol);

llvm/include/llvm/MC/MCObjectWriter.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ class MCObjectWriter {
3636
SmallVector<std::pair<std::string, size_t>, 0> FileNames;
3737
// XCOFF specific: Optional compiler version.
3838
std::string CompilerVersion;
39-
// AIX specific: CPU type.
40-
std::string CPUType;
4139
std::vector<const MCSymbol *> AddrsigSyms;
4240
bool EmitAddrsigSection = false;
4341
bool SubsectionsViaSymbols = false;
@@ -102,7 +100,6 @@ class MCObjectWriter {
102100
void setCompilerVersion(StringRef CompilerVers) {
103101
CompilerVersion = CompilerVers;
104102
}
105-
void setCPU(StringRef TargetCPU) { CPUType = TargetCPU; }
106103

107104
/// Tell the object writer to emit an address-significance table during
108105
/// writeObject(). If this function is not called, all symbols are treated as

llvm/include/llvm/MC/MCXCOFFObjectWriter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,16 @@ class MCXCOFFObjectTargetWriter : public MCObjectTargetWriter {
4040
};
4141

4242
class XCOFFObjectWriter : public MCObjectWriter {
43+
// AIX specific CPU type.
44+
std::string CPUType;
45+
4346
public:
4447
virtual void addExceptionEntry(const MCSymbol *Symbol, const MCSymbol *Trap,
4548
unsigned LanguageCode, unsigned ReasonCode,
4649
unsigned FunctionSize, bool hasDebug) = 0;
4750
virtual void addCInfoSymEntry(StringRef Name, StringRef Metadata) = 0;
51+
StringRef getCPUType() const { return CPUType; }
52+
void setCPU(StringRef TargetCPU) { CPUType = TargetCPU; }
4853
};
4954

5055
std::unique_ptr<MCObjectWriter>

llvm/lib/MC/XCOFFObjectWriter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1181,7 +1181,7 @@ void XCOFFWriter::writeSymbolTable(MCAssembler &Asm) {
11811181
else
11821182
LangID = XCOFF::TB_CPLUSPLUS;
11831183

1184-
uint8_t CpuID = XCOFF::getCpuID(CPUType);
1184+
uint8_t CpuID = XCOFF::getCpuID(getCPUType());
11851185

11861186
int NumberOfFileAuxEntries = 1;
11871187
if (!Vers.empty())

llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include "llvm/MC/MCSymbol.h"
3838
#include "llvm/MC/MCSymbolELF.h"
3939
#include "llvm/MC/MCSymbolXCOFF.h"
40+
#include "llvm/MC/MCXCOFFObjectWriter.h"
4041
#include "llvm/MC/TargetRegistry.h"
4142
#include "llvm/Support/Casting.h"
4243
#include "llvm/Support/ErrorHandling.h"
@@ -426,8 +427,8 @@ class PPCTargetXCOFFStreamer : public PPCTargetStreamer {
426427
}
427428

428429
void emitMachine(StringRef CPU) override {
429-
MCXCOFFStreamer &XCOFFStreamer = static_cast<MCXCOFFStreamer &>(Streamer);
430-
XCOFFStreamer.getAssembler().getWriter().setCPU(CPU);
430+
static_cast<XCOFFObjectWriter &>(Streamer.getAssemblerPtr()->getWriter())
431+
.setCPU(CPU);
431432
}
432433

433434
void emitAbiVersion(int AbiVersion) override {

0 commit comments

Comments
 (0)