[llvm] bc0f696 - MCSymbol: Replace isELF with MCContext::isELF
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 3 12:41:00 PDT 2025
Author: Fangrui Song
Date: 2025-08-03T12:40:55-07:00
New Revision: bc0f696b1fbf85b16bc9493b3e0e7027eb32f638
URL: https://github.com/llvm/llvm-project/commit/bc0f696b1fbf85b16bc9493b3e0e7027eb32f638
DIFF: https://github.com/llvm/llvm-project/commit/bc0f696b1fbf85b16bc9493b3e0e7027eb32f638.diff
LOG: MCSymbol: Replace isELF with MCContext::isELF
Added:
Modified:
llvm/include/llvm/MC/MCContext.h
llvm/lib/MC/MCAsmBackend.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCContext.h b/llvm/include/llvm/MC/MCContext.h
index 4bd16cf1505a1..3b393774e0037 100644
--- a/llvm/include/llvm/MC/MCContext.h
+++ b/llvm/include/llvm/MC/MCContext.h
@@ -390,6 +390,8 @@ class MCContext {
LLVM_ABI ~MCContext();
Environment getObjectFileType() const { return Env; }
+ bool isELF() const { return Env == IsELF; }
+ bool isMachO() const { return Env == IsMachO; }
const StringRef &getSwift5ReflectionSegmentName() const {
return Swift5ReflectionSegmentName;
diff --git a/llvm/lib/MC/MCAsmBackend.cpp b/llvm/lib/MC/MCAsmBackend.cpp
index 828d9cf56a71f..55ec4a6675010 100644
--- a/llvm/lib/MC/MCAsmBackend.cpp
+++ b/llvm/lib/MC/MCAsmBackend.cpp
@@ -8,6 +8,7 @@
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCAssembler.h"
+#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDXContainerWriter.h"
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/MC/MCGOFFObjectWriter.h"
@@ -122,14 +123,12 @@ void MCAsmBackend::maybeAddReloc(const MCFragment &F, const MCFixup &Fixup,
}
bool MCAsmBackend::isDarwinCanonicalPersonality(const MCSymbol *Sym) const {
+ assert(getContext().isMachO());
// Consider a NULL personality (ie., no personality encoding) to be canonical
// because it's always at 0.
if (!Sym)
return true;
- if (!Sym->isMachO())
- llvm_unreachable("Expected MachO symbols only");
-
StringRef name = Sym->getName();
// XXX: We intentionally leave out "___gcc_personality_v0" because, despite
// being system-defined like these two, it is not very commonly-used.
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
index c221d221dabab..8c4ae35d32627 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
@@ -296,7 +296,7 @@ static bool needsInterworking(const MCAssembler &Asm, const MCSymbol *Sym,
unsigned FixupKind) {
// Create relocations for unconditional branches to function symbols with
//
diff erent execution mode in ELF binaries.
- if (!Sym || !Sym->isELF())
+ if (!Sym || !Asm.getContext().isELF())
return false;
unsigned Type = cast<MCSymbolELF>(Sym)->getType();
if ((Type == ELF::STT_FUNC || Type == ELF::STT_GNU_IFUNC)) {
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
index 259b71b37d9a3..f8457dfa94535 100644
--- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -2948,8 +2948,9 @@ bool MipsAsmParser::loadAndAddSymbolAddress(const MCExpr *SymExpr,
bool IsPtr64 = ABI.ArePtrs64bit();
bool IsLocalSym =
Res.getAddSym()->isInSection() || Res.getAddSym()->isTemporary() ||
- (Res.getAddSym()->isELF() &&
- cast<MCSymbolELF>(Res.getAddSym())->getBinding() == ELF::STB_LOCAL);
+ (getContext().isELF() &&
+ static_cast<const MCSymbolELF *>(Res.getAddSym())->getBinding() ==
+ ELF::STB_LOCAL);
// For O32, "$"-prefixed symbols are recognized as temporary while
// .L-prefixed symbols are not (PrivateGlobalPrefix is "$"). Recognize ".L"
// manually.
More information about the llvm-commits
mailing list