Skip to content

Commit f7228f3

Browse files
committed
MCValue: Simplify code with getSubSym
The MCValue::SymB MCSymbolRefExpr member might be replaced with a MCSymbol in the future. Reduce direct access.
1 parent e3a3f78 commit f7228f3

File tree

6 files changed

+14
-16
lines changed

6 files changed

+14
-16
lines changed

llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8214,7 +8214,7 @@ bool AArch64AsmParser::classifySymbolRef(
82148214
// Check that it looks like a symbol + an addend
82158215
MCValue Res;
82168216
bool Relocatable = Expr->evaluateAsRelocatable(Res, nullptr);
8217-
if (!Relocatable || Res.getSymB())
8217+
if (!Relocatable || Res.getSubSym())
82188218
return false;
82198219

82208220
// Treat expressions with an ELFSpec (like ":abs_g1:3", or

llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -163,19 +163,18 @@ void ARMMachObjectWriter::recordARMScatteredHalfRelocation(
163163
uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());
164164
FixedValue += SecAddr;
165165

166-
if (const MCSymbolRefExpr *B = Target.getSymB()) {
167-
const MCSymbol *SB = &B->getSymbol();
168-
166+
if (const MCSymbol *SB = Target.getSubSym()) {
169167
if (!SB->getFragment()) {
170-
Asm.getContext().reportError(Fixup.getLoc(),
171-
"symbol '" + B->getSymbol().getName() +
172-
"' can not be undefined in a subtraction expression");
168+
Asm.getContext().reportError(
169+
Fixup.getLoc(),
170+
"symbol '" + SB->getName() +
171+
"' can not be undefined in a subtraction expression");
173172
return;
174173
}
175174

176175
// Select the appropriate difference relocation type.
177176
Type = MachO::ARM_RELOC_HALF_SECTDIFF;
178-
Value2 = Writer->getSymbolAddress(B->getSymbol(), Asm);
177+
Value2 = Writer->getSymbolAddress(*SB, Asm);
179178
FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());
180179
}
181180

llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ bool LoongArchAsmBackend::handleAddSubRelocations(const MCAssembler &Asm,
455455
std::pair<MCFixupKind, MCFixupKind> FK;
456456
uint64_t FixedValueA, FixedValueB;
457457
const MCSymbol &SA = Target.getSymA()->getSymbol();
458-
const MCSymbol &SB = Target.getSymB()->getSymbol();
458+
const MCSymbol &SB = *Target.getSubSym();
459459

460460
bool force = !SA.isInSection() || !SB.isInSection();
461461
if (!force) {

llvm/lib/Target/M68k/MCTargetDesc/M68kMCExpr.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@ bool M68kMCExpr::evaluateAsRelocatableImpl(MCValue &Res,
2525
if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
2626
return false;
2727

28-
Res =
29-
MCValue::get(Res.getSymA(), Res.getSymB(), Res.getConstant(), specifier);
30-
return Res.getSymB() ? specifier == VK_None : true;
28+
Res.setSpecifier(specifier);
29+
return !Res.getSubSym();
3130
}
3231

3332
void M68kMCExpr::visitUsedExpr(MCStreamer &S) const { S.visitUsedExpr(*Expr); }

llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ class MipsAsmParser : public MCTargetAsmParser {
585585
MCValue Res;
586586
if (!JalExpr->evaluateAsRelocatable(Res, nullptr))
587587
return false;
588-
if (Res.getSymB() != nullptr)
588+
if (Res.getSubSym())
589589
return false;
590590
if (Res.getConstant() != 0)
591591
return ABI.IsN32() || ABI.IsN64();
@@ -2938,7 +2938,7 @@ bool MipsAsmParser::loadAndAddSymbolAddress(const MCExpr *SymExpr,
29382938
Error(IDLoc, "expected relocatable expression");
29392939
return true;
29402940
}
2941-
if (Res.getSymB() != nullptr) {
2941+
if (Res.getSubSym()) {
29422942
Error(IDLoc, "expected relocatable expression with only one symbol");
29432943
return true;
29442944
}
@@ -3768,7 +3768,7 @@ void MipsAsmParser::expandMem16Inst(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out,
37683768
Error(IDLoc, "expected relocatable expression");
37693769
return;
37703770
}
3771-
if (Res.getSymB() != nullptr) {
3771+
if (Res.getSubSym()) {
37723772
Error(IDLoc, "expected relocatable expression with only one symbol");
37733773
return;
37743774
}

llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ bool XtensaMCExpr::evaluateAsRelocatableImpl(MCValue &Res,
4545
if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
4646
return false;
4747
Res.setSpecifier(specifier);
48-
return !Res.getSymB();
48+
return !Res.getSubSym();
4949
}
5050

5151
void XtensaMCExpr::visitUsedExpr(MCStreamer &Streamer) const {

0 commit comments

Comments
 (0)