Skip to content

Commit 086af83

Browse files
committed
[MC] Replace getSymA()->getSymbol() with getAddSym. NFC
We will replace the MCSymbolRefExpr member in MCValue with MCSymbol. This change reduces dependence on MCSymbolRefExpr.
1 parent 7ccdc3d commit 086af83

File tree

5 files changed

+10
-16
lines changed

5 files changed

+10
-16
lines changed

llvm/lib/MC/MCAssembler.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,11 @@ bool MCAssembler::evaluateFixup(const MCFixup &Fixup, const MCFragment *DF,
164164
bool IsPCRel = FixupFlags & MCFixupKindInfo::FKF_IsPCRel;
165165
bool IsResolved = false;
166166
if (IsPCRel) {
167-
if (Target.getSubSym()) {
168-
IsResolved = false;
169-
} else if (!Target.getSymA()) {
167+
if (Target.getSubSym() || !Target.getAddSym()) {
170168
IsResolved = false;
171169
} else {
172-
const MCSymbolRefExpr *A = Target.getSymA();
173-
const MCSymbol &SA = A->getSymbol();
174-
if (A->getKind() != MCSymbolRefExpr::VK_None || SA.isUndefined()) {
170+
auto &SA = *Target.getAddSym();
171+
if (Target.getSymSpecifier() || SA.isUndefined()) {
175172
IsResolved = false;
176173
} else {
177174
IsResolved = (FixupFlags & MCFixupKindInfo::FKF_Constant) ||

llvm/lib/MC/MCExpr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ bool MCExpr::evaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm,
578578
break;
579579
case MCUnaryExpr::Minus:
580580
/// -(a - b + const) ==> (b - a - const)
581-
if (Value.getSymA() && !Value.getSubSym())
581+
if (Value.getAddSym() && !Value.getSubSym())
582582
return false;
583583

584584
// The cast avoids undefined behavior if the constant is INT64_MIN.

llvm/lib/MC/MCObjectStreamer.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -676,8 +676,7 @@ MCObjectStreamer::emitRelocDirective(const MCExpr &Offset, StringRef Name,
676676
return std::make_pair(false,
677677
std::string(".reloc offset is not representable"));
678678

679-
const MCSymbolRefExpr &SRE = cast<MCSymbolRefExpr>(*OffsetVal.getSymA());
680-
const MCSymbol &Symbol = SRE.getSymbol();
679+
const MCSymbol &Symbol = *OffsetVal.getAddSym();
681680
if (Symbol.isDefined()) {
682681
uint32_t SymbolOffset = 0;
683682
std::optional<std::pair<bool, std::string>> Error =
@@ -693,8 +692,7 @@ MCObjectStreamer::emitRelocDirective(const MCExpr &Offset, StringRef Name,
693692
}
694693

695694
PendingFixups.emplace_back(
696-
&SRE.getSymbol(), DF,
697-
MCFixup::create(OffsetVal.getConstant(), Expr, Kind, Loc));
695+
&Symbol, DF, MCFixup::create(OffsetVal.getConstant(), Expr, Kind, Loc));
698696
return std::nullopt;
699697
}
700698

llvm/lib/MC/WasmObjectWriter.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -519,8 +519,7 @@ void WasmObjectWriter::recordRelocation(MCAssembler &Asm,
519519
}
520520

521521
// We either rejected the fixup or folded B into C at this point.
522-
const MCSymbolRefExpr *RefA = Target.getSymA();
523-
const auto *SymA = cast<MCSymbolWasm>(&RefA->getSymbol());
522+
const auto *SymA = cast<MCSymbolWasm>(Target.getAddSym());
524523

525524
// The .init_array isn't translated as data, so don't do relocations in it.
526525
if (FixupSection.getName().starts_with(".init_array")) {
@@ -607,7 +606,7 @@ void WasmObjectWriter::recordRelocation(MCAssembler &Asm,
607606
SymA->setUsedInReloc();
608607
}
609608

610-
switch (RefA->getKind()) {
609+
switch (Target.getSymSpecifier()) {
611610
case MCSymbolRefExpr::VK_GOT:
612611
case MCSymbolRefExpr::VK_WASM_GOT_TLS:
613612
SymA->setUsedInGOT();

llvm/lib/MC/WinCOFFObjectWriter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -837,9 +837,9 @@ void WinCOFFWriter::recordRelocation(MCAssembler &Asm,
837837
const MCFragment *Fragment,
838838
const MCFixup &Fixup, MCValue Target,
839839
uint64_t &FixedValue) {
840-
assert(Target.getSymA() && "Relocation must reference a symbol!");
840+
assert(Target.getAddSym() && "Relocation must reference a symbol!");
841841

842-
const MCSymbol &A = Target.getSymA()->getSymbol();
842+
const MCSymbol &A = *Target.getAddSym();
843843
if (!A.isRegistered()) {
844844
Asm.getContext().reportError(Fixup.getLoc(), Twine("symbol '") +
845845
A.getName() +

0 commit comments

Comments
 (0)