aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCMachOStreamer.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2025-08-22 00:25:55 -0700
committerFangrui Song <i@maskray.me>2025-08-22 00:25:55 -0700
commit06ab660911eef084716fdc6f13595cdbff9da08a (patch)
treef2fb6564273f9ef95e737416307b8d7482534c13 /llvm/lib/MC/MCMachOStreamer.cpp
parent36dc6146b8f35ebf38384896e80e8fcabbddfb54 (diff)
downloadllvm-06ab660911eef084716fdc6f13595cdbff9da08a.zip
llvm-06ab660911eef084716fdc6f13595cdbff9da08a.tar.gz
llvm-06ab660911eef084716fdc6f13595cdbff9da08a.tar.bz2
MCSymbol: Avoid isExported/setExported
The next change will move these methods from the base class.
Diffstat (limited to 'llvm/lib/MC/MCMachOStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCMachOStreamer.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp
index 6226b02..2b7a248 100644
--- a/llvm/lib/MC/MCMachOStreamer.cpp
+++ b/llvm/lib/MC/MCMachOStreamer.cpp
@@ -149,7 +149,7 @@ void MCMachOStreamer::emitEHSymAttributes(const MCSymbol *Symbol,
MCSymbol *EHSymbol) {
auto *Sym = static_cast<const MCSymbolMachO *>(Symbol);
getAssembler().registerSymbol(*Symbol);
- if (Symbol->isExternal())
+ if (Sym->isExternal())
emitSymbolAttribute(EHSymbol, MCSA_Global);
if (Sym->isWeakDefinition())
emitSymbolAttribute(EHSymbol, MCSA_WeakDefinition);
@@ -372,12 +372,13 @@ void MCMachOStreamer::emitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {
void MCMachOStreamer::emitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
Align ByteAlignment) {
+ auto &Sym = static_cast<MCSymbolMachO &>(*Symbol);
// FIXME: Darwin 'as' does appear to allow redef of a .comm by itself.
assert(Symbol->isUndefined() && "Cannot define a symbol twice!");
- getAssembler().registerSymbol(*Symbol);
- Symbol->setExternal(true);
- Symbol->setCommon(Size, ByteAlignment);
+ getAssembler().registerSymbol(Sym);
+ Sym.setExternal(true);
+ Sym.setCommon(Size, ByteAlignment);
}
void MCMachOStreamer::emitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
@@ -460,7 +461,8 @@ void MCMachOStreamer::finishImpl() {
}
void MCMachOStreamer::finalizeCGProfileEntry(const MCSymbolRefExpr *&SRE) {
- const MCSymbol *S = &SRE->getSymbol();
+ auto *S =
+ static_cast<MCSymbolMachO *>(const_cast<MCSymbol *>(&SRE->getSymbol()));
if (getAssembler().registerSymbol(*S))
S->setExternal(true);
}