[llvm] 2d4ecba - MCSymbolMachO: Remove classof
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 3 18:59:39 PDT 2025
Author: Fangrui Song
Date: 2025-08-03T18:59:35-07:00
New Revision: 2d4ecba957a6cd3b5228e0773ec2d52d8bc5c505
URL: https://github.com/llvm/llvm-project/commit/2d4ecba957a6cd3b5228e0773ec2d52d8bc5c505
DIFF: https://github.com/llvm/llvm-project/commit/2d4ecba957a6cd3b5228e0773ec2d52d8bc5c505.diff
LOG: MCSymbolMachO: Remove classof
The object file format specific derived classes are used in context
where the type is statically known. We don't use isa/dyn_cast and we
want to eliminate MCSymbol::Kind in the base class.
Added:
Modified:
llvm/include/llvm/MC/MCSymbol.h
llvm/include/llvm/MC/MCSymbolMachO.h
llvm/lib/MC/MCMachOStreamer.cpp
llvm/lib/MC/MachObjectWriter.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCSymbol.h b/llvm/include/llvm/MC/MCSymbol.h
index ccd37c3ede2d9..cb9f26136b1fb 100644
--- a/llvm/include/llvm/MC/MCSymbol.h
+++ b/llvm/include/llvm/MC/MCSymbol.h
@@ -281,16 +281,6 @@ class MCSymbol {
/// Mark the symbol as undefined.
void setUndefined() { Fragment = nullptr; }
- bool isCOFF() const { return Kind == SymbolKindCOFF; }
-
- bool isGOFF() const { return Kind == SymbolKindGOFF; }
-
- bool isMachO() const { return Kind == SymbolKindMachO; }
-
- bool isWasm() const { return Kind == SymbolKindWasm; }
-
- bool isXCOFF() const { return Kind == SymbolKindXCOFF; }
-
/// @}
/// \name Variable Symbols
/// @{
diff --git a/llvm/include/llvm/MC/MCSymbolMachO.h b/llvm/include/llvm/MC/MCSymbolMachO.h
index 97c9abfcf5f2c..c5c51fee64137 100644
--- a/llvm/include/llvm/MC/MCSymbolMachO.h
+++ b/llvm/include/llvm/MC/MCSymbolMachO.h
@@ -149,8 +149,6 @@ class MCSymbolMachO : public MCSymbol {
return Flags;
}
-
- static bool classof(const MCSymbol *S) { return S->isMachO(); }
};
}
diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp
index c850ed9fec26b..6226b02a0615b 100644
--- a/llvm/lib/MC/MCMachOStreamer.cpp
+++ b/llvm/lib/MC/MCMachOStreamer.cpp
@@ -160,7 +160,7 @@ void MCMachOStreamer::emitEHSymAttributes(const MCSymbol *Symbol,
void MCMachOStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
// We have to create a new fragment if this is an atom defining symbol,
// fragments cannot span atoms.
- if (cast<MCSymbolMachO>(Symbol)->isSymbolLinkerVisible())
+ if (static_cast<MCSymbolMachO *>(Symbol)->isSymbolLinkerVisible())
newFragment();
MCObjectStreamer::emitLabel(Symbol, Loc);
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp
index bcdc0012ebf98..eb59e39d73eda 100644
--- a/llvm/lib/MC/MachObjectWriter.cpp
+++ b/llvm/lib/MC/MachObjectWriter.cpp
@@ -589,7 +589,7 @@ void MachObjectWriter::computeSymbolTable(
// Build the string table.
for (const MCSymbol &Symbol : Asm.symbols()) {
- if (!cast<MCSymbolMachO>(Symbol).isSymbolLinkerVisible())
+ if (!static_cast<const MCSymbolMachO &>(Symbol).isSymbolLinkerVisible())
continue;
StringTable.add(Symbol.getName());
@@ -603,7 +603,7 @@ void MachObjectWriter::computeSymbolTable(
// important for letting us
diff .o files.
for (const MCSymbol &Symbol : Asm.symbols()) {
// Ignore non-linker visible symbols.
- if (!cast<MCSymbolMachO>(Symbol).isSymbolLinkerVisible())
+ if (!static_cast<const MCSymbolMachO &>(Symbol).isSymbolLinkerVisible())
continue;
if (!Symbol.isExternal() && !Symbol.isUndefined())
@@ -629,7 +629,7 @@ void MachObjectWriter::computeSymbolTable(
// Now add the data for local symbols.
for (const MCSymbol &Symbol : Asm.symbols()) {
// Ignore non-linker visible symbols.
- if (!cast<MCSymbolMachO>(Symbol).isSymbolLinkerVisible())
+ if (!static_cast<const MCSymbolMachO &>(Symbol).isSymbolLinkerVisible())
continue;
if (Symbol.isExternal() || Symbol.isUndefined())
More information about the llvm-commits
mailing list