Skip to content

Commit

Permalink
[ELF] Internalize enum
Browse files Browse the repository at this point in the history
g++ -flto has a diagnostic `-Wodr` about mismatched redeclarations,
which even apply to `enum`.

Fix llvm#83529

Reviewers: thesamesam

Reviewed By: thesamesam

Pull Request: llvm#83604

(cherry picked from commit 4a3f7e7)
  • Loading branch information
MaskRay authored and llvmbot committed Mar 1, 2024
1 parent 461274b commit 939ee54
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
2 changes: 2 additions & 0 deletions lld/ELF/Arch/LoongArch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class LoongArch final : public TargetInfo {
};
} // end anonymous namespace

namespace {
enum Op {
SUB_W = 0x00110000,
SUB_D = 0x00118000,
Expand All @@ -65,6 +66,7 @@ enum Reg {
R_T2 = 14,
R_T3 = 15,
};
} // namespace

// Mask out the input's lowest 12 bits for use with `pcalau12i`, in sequences
// like `pcalau12i + addi.[wd]` or `pcalau12i + {ld,st}.*` where the `pcalau12i`
Expand Down
3 changes: 2 additions & 1 deletion lld/ELF/Arch/PPC64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ using namespace lld::elf;
constexpr uint64_t ppc64TocOffset = 0x8000;
constexpr uint64_t dynamicThreadPointerOffset = 0x8000;

namespace {
// The instruction encoding of bits 21-30 from the ISA for the Xform and Dform
// instructions that can be used as part of the initial exec TLS sequence.
enum XFormOpcd {
Expand Down Expand Up @@ -139,6 +140,7 @@ enum class PPCPrefixedInsn : uint64_t {
PSTXV = PREFIX_8LS | 0xd8000000,
PSTXVP = PREFIX_8LS | 0xf8000000
};

static bool checkPPCLegacyInsn(uint32_t encoding) {
PPCLegacyInsn insn = static_cast<PPCLegacyInsn>(encoding);
if (insn == PPCLegacyInsn::NOINSN)
Expand All @@ -164,7 +166,6 @@ enum class LegacyToPrefixMask : uint64_t {
0x8000000003e00000, // S/T (6-10) - The [S/T]X bit moves from 28 to 5.
};

namespace {
class PPC64 final : public TargetInfo {
public:
PPC64();
Expand Down
2 changes: 2 additions & 0 deletions lld/ELF/Arch/RISCV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class RISCV final : public TargetInfo {

const uint64_t dtpOffset = 0x800;

namespace {
enum Op {
ADDI = 0x13,
AUIPC = 0x17,
Expand All @@ -78,6 +79,7 @@ enum Reg {
X_A0 = 10,
X_T3 = 28,
};
} // namespace

static uint32_t hi20(uint32_t val) { return (val + 0x800) >> 12; }
static uint32_t lo12(uint32_t val) { return val & 4095; }
Expand Down

0 comments on commit 939ee54

Please sign in to comment.