[lld] Remove shadowing "size" field from classes that inherit from SyntheticSection (PR #166323)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 3 23:16:38 PST 2025
https://github.com/Sterling-Augustine created https://github.com/llvm/llvm-project/pull/166323
A field-named 'size' already available and perfectly usable via inheritance from InputSection, and these variables shadow it for no good reason.
The only interesting change here is in PaddingSection, because a parent's field cannot be initialized via a constructor initializer list, setting it needs to be done inside the constructor body.
>From 7226b4af1bc4b00db42d313cfa7f5638a60a905b Mon Sep 17 00:00:00 2001
From: Sterling Augustine <saugustine at google.com>
Date: Mon, 3 Nov 2025 23:11:19 -0800
Subject: [PATCH] Remove shadowing "size" field from claases that inherit from
SyntheticSection
A field-named 'size' already available and perfectly usable via
inheritance from InputSection, and these variables shadow it for no
good reason.
The only interesting change here is in PaddingSection, because a parent's
field cannot be initialized via a constructor initializer list, setting
it needs to be done inside the constructor body.
---
lld/ELF/SyntheticSections.cpp | 6 +++---
lld/ELF/SyntheticSections.h | 13 +------------
2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp
index a4150ebfa1653..a27f5339a3d4d 100644
--- a/lld/ELF/SyntheticSections.cpp
+++ b/lld/ELF/SyntheticSections.cpp
@@ -2749,9 +2749,9 @@ RelroPaddingSection::RelroPaddingSection(Ctx &ctx)
: SyntheticSection(ctx, ".relro_padding", SHT_NOBITS, SHF_ALLOC | SHF_WRITE,
1) {}
-PaddingSection::PaddingSection(Ctx &ctx, uint64_t size, OutputSection *parent)
- : SyntheticSection(ctx, ".padding", SHT_PROGBITS, SHF_ALLOC, 1),
- size(size) {
+PaddingSection::PaddingSection(Ctx &ctx, uint64_t amount, OutputSection *parent)
+ : SyntheticSection(ctx, ".padding", SHT_PROGBITS, SHF_ALLOC, 1) {
+ size = amount;
this->parent = parent;
}
diff --git a/lld/ELF/SyntheticSections.h b/lld/ELF/SyntheticSections.h
index 38e68110e4bc0..66c866d7e8cde 100644
--- a/lld/ELF/SyntheticSections.h
+++ b/lld/ELF/SyntheticSections.h
@@ -78,8 +78,6 @@ class EhFrameSection final : public SyntheticSection {
// allocating one for each EhInputSection.
llvm::DenseMap<size_t, CieRecord *> offsetToCie;
- uint64_t size = 0;
-
template <llvm::endianness E> void addRecords(EhInputSection *s);
template <class ELFT>
void iterateFDEWithLSDAAux(EhInputSection &sec,
@@ -127,7 +125,6 @@ class GotSection final : public SyntheticSection {
protected:
size_t numEntries = 0;
uint32_t tlsIndexOff = -1;
- uint64_t size = 0;
struct AuthEntryInfo {
size_t offset;
bool isSymbolFunc;
@@ -182,7 +179,6 @@ class BssSection final : public SyntheticSection {
static bool classof(const SectionBase *s) {
return isa<SyntheticSection>(s) && cast<SyntheticSection>(s)->bss;
}
- uint64_t size;
};
class MipsGotSection final : public SyntheticSection {
@@ -312,8 +308,6 @@ class MipsGotSection final : public SyntheticSection {
// Number of "Header" entries.
static const unsigned headerEntriesNum = 2;
- uint64_t size = 0;
-
// Symbol and addend.
using GotEntry = std::pair<Symbol *, int64_t>;
@@ -407,8 +401,6 @@ class StringTableSection final : public SyntheticSection {
private:
const bool dynamic;
- uint64_t size = 0;
-
llvm::DenseMap<llvm::CachedHashStringRef, unsigned> stringMap;
SmallVector<StringRef, 0> strings;
};
@@ -475,7 +467,6 @@ template <class ELFT> class DynamicSection final : public SyntheticSection {
private:
std::vector<std::pair<int32_t, uint64_t>> computeContents();
- uint64_t size = 0;
};
class RelocationBaseSection : public SyntheticSection {
@@ -780,10 +771,8 @@ class RelroPaddingSection final : public SyntheticSection {
};
class PaddingSection final : public SyntheticSection {
- uint64_t size;
-
public:
- PaddingSection(Ctx &ctx, uint64_t size, OutputSection *parent);
+ PaddingSection(Ctx &ctx, uint64_t amount, OutputSection *parent);
size_t getSize() const override { return size; }
void writeTo(uint8_t *buf) override;
};
More information about the llvm-commits
mailing list