mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 09:16:05 +00:00
[BOLT][NFC] Refactor relocation printing (#88180)
Some refactoring. * Make the arrays themselves const -- not just the strings being pointed to. * Move each relocation array to the case using it. * Add a suitable assert, to make sure there's no out-of-bounds indexing.
This commit is contained in:
parent
17cb8a537b
commit
67e733d36e
@ -1064,21 +1064,19 @@ MCBinaryExpr::Opcode Relocation::getComposeOpcodeFor(uint64_t Type) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ELF_RELOC(name, value) #name,
|
|
||||||
|
|
||||||
void Relocation::print(raw_ostream &OS) const {
|
void Relocation::print(raw_ostream &OS) const {
|
||||||
static const char *X86RelocNames[] = {
|
|
||||||
#include "llvm/BinaryFormat/ELFRelocs/x86_64.def"
|
|
||||||
};
|
|
||||||
static const char *AArch64RelocNames[] = {
|
|
||||||
#include "llvm/BinaryFormat/ELFRelocs/AArch64.def"
|
|
||||||
};
|
|
||||||
switch (Arch) {
|
switch (Arch) {
|
||||||
default:
|
default:
|
||||||
OS << "RType:" << Twine::utohexstr(Type);
|
OS << "RType:" << Twine::utohexstr(Type);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Triple::aarch64:
|
case Triple::aarch64:
|
||||||
|
static const char *const AArch64RelocNames[] = {
|
||||||
|
#define ELF_RELOC(name, value) #name,
|
||||||
|
#include "llvm/BinaryFormat/ELFRelocs/AArch64.def"
|
||||||
|
#undef ELF_RELOC
|
||||||
|
};
|
||||||
|
assert(Type < ArrayRef(AArch64RelocNames).size());
|
||||||
OS << AArch64RelocNames[Type];
|
OS << AArch64RelocNames[Type];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1088,16 +1086,22 @@ void Relocation::print(raw_ostream &OS) const {
|
|||||||
switch (Type) {
|
switch (Type) {
|
||||||
default:
|
default:
|
||||||
llvm_unreachable("illegal RISC-V relocation");
|
llvm_unreachable("illegal RISC-V relocation");
|
||||||
#undef ELF_RELOC
|
|
||||||
#define ELF_RELOC(name, value) \
|
#define ELF_RELOC(name, value) \
|
||||||
case value: \
|
case value: \
|
||||||
OS << #name; \
|
OS << #name; \
|
||||||
break;
|
break;
|
||||||
#include "llvm/BinaryFormat/ELFRelocs/RISCV.def"
|
#include "llvm/BinaryFormat/ELFRelocs/RISCV.def"
|
||||||
|
#undef ELF_RELOC
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Triple::x86_64:
|
case Triple::x86_64:
|
||||||
|
static const char *const X86RelocNames[] = {
|
||||||
|
#define ELF_RELOC(name, value) #name,
|
||||||
|
#include "llvm/BinaryFormat/ELFRelocs/x86_64.def"
|
||||||
|
#undef ELF_RELOC
|
||||||
|
};
|
||||||
|
assert(Type < ArrayRef(X86RelocNames).size());
|
||||||
OS << X86RelocNames[Type];
|
OS << X86RelocNames[Type];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user