Skip to content

Commit dfae1f9

Browse files
committed
MCValue: Simplify code with getSubSym
1 parent 46880fe commit dfae1f9

File tree

6 files changed

+10
-22
lines changed

6 files changed

+10
-22
lines changed

llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3879,9 +3879,9 @@ static void handleIndirectSymViaGOTPCRel(AsmPrinter &AP, const MCExpr **ME,
38793879

38803880
// Check for a valid base symbol
38813881
const MCSymbol *BaseSym = AP.getSymbol(BaseGV);
3882-
const MCSymbolRefExpr *SymB = MV.getSymB();
3882+
const MCSymbol *SymB = MV.getSubSym();
38833883

3884-
if (!SymB || BaseSym != &SymB->getSymbol())
3884+
if (!SymB || BaseSym != SymB)
38853885
return;
38863886

38873887
// Make sure to match:

llvm/lib/MC/MCAssembler.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -488,10 +488,10 @@ static bool getSymbolOffsetImpl(const MCAssembler &Asm, const MCSymbol &S,
488488
Offset += ValA;
489489
}
490490

491-
const MCSymbolRefExpr *B = Target.getSymB();
491+
const MCSymbol *B = Target.getSubSym();
492492
if (B) {
493493
uint64_t ValB;
494-
if (!getSymbolOffsetImpl(Asm, B->getSymbol(), ReportError, ValB))
494+
if (!getSymbolOffsetImpl(Asm, *B, ReportError, ValB))
495495
return false;
496496
Offset -= ValB;
497497
}
@@ -523,11 +523,11 @@ const MCSymbol *MCAssembler::getBaseSymbol(const MCSymbol &Symbol) const {
523523
return nullptr;
524524
}
525525

526-
const MCSymbolRefExpr *RefB = Value.getSymB();
527-
if (RefB) {
526+
const MCSymbol *SymB = Value.getSubSym();
527+
if (SymB) {
528528
getContext().reportError(
529529
Expr->getLoc(),
530-
Twine("symbol '") + RefB->getSymbol().getName() +
530+
Twine("symbol '") + SymB->getName() +
531531
"' could not be evaluated in a subtraction expression");
532532
return nullptr;
533533
}

llvm/lib/MC/MCValue.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,6 @@ LLVM_DUMP_METHOD void MCValue::dump() const {
4444
#endif
4545

4646
MCSymbolRefExpr::VariantKind MCValue::getAccessVariant() const {
47-
const MCSymbolRefExpr *B = getSymB();
48-
if (B) {
49-
if (B->getKind() != MCSymbolRefExpr::VK_None)
50-
llvm_unreachable("unsupported");
51-
}
52-
5347
const MCSymbolRefExpr *A = getSymA();
5448
if (!A)
5549
return MCSymbolRefExpr::VK_None;

llvm/lib/MC/XCOFFObjectWriter.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -782,10 +782,9 @@ void XCOFFWriter::recordRelocation(MCAssembler &Asm, const MCFragment *Fragment,
782782
"Expected containing csect to exist in map.");
783783
SectionMap[RelocationSec]->Relocations.push_back(Reloc);
784784

785-
if (!Target.getSymB())
785+
const MCSymbol *const SymB = Target.getSubSym();
786+
if (!SymB)
786787
return;
787-
788-
const MCSymbol *const SymB = &Target.getSymB()->getSymbol();
789788
if (SymA == SymB)
790789
report_fatal_error("relocation for opposite term is not yet supported");
791790

llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,6 @@ bool AArch64AuthMCExpr::evaluateAsRelocatableImpl(
155155
if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
156156
return false;
157157

158-
if (Res.getSymB())
159-
report_fatal_error("Auth relocation can't reference two symbols");
160-
161158
Res = MCValue::get(Res.getSymA(), nullptr, Res.getConstant(), getKind());
162159
return true;
163160
}

llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,9 @@ void AArch64MachObjectWriter::recordRelocation(
213213
// FIXME: x86_64 sets the type to a branch reloc here. Should we do
214214
// something similar?
215215
}
216-
} else if (Target.getSubSym()) { // A - B + constant
216+
} else if (auto *B = Target.getSubSym()) { // A - B + constant
217217
const MCSymbol *A = &Target.getSymA()->getSymbol();
218218
const MCSymbol *A_Base = Writer->getAtom(*A);
219-
220-
const MCSymbol *B = &Target.getSymB()->getSymbol();
221219
const MCSymbol *B_Base = Writer->getAtom(*B);
222220

223221
// Check for "_foo@got - .", which comes through here as:

0 commit comments

Comments
 (0)