[llvm] e12689e - MCSymbol: Move isExported/setExported to MCSymbol{COFF,MachO,Wasm}

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 22 09:50:22 PDT 2025


Author: Fangrui Song
Date: 2025-08-22T09:50:17-07:00
New Revision: e12689e715e96d123e0571bd5014b85862bb5e1b

URL: https://github.com/llvm/llvm-project/commit/e12689e715e96d123e0571bd5014b85862bb5e1b
DIFF: https://github.com/llvm/llvm-project/commit/e12689e715e96d123e0571bd5014b85862bb5e1b.diff

LOG: MCSymbol: Move isExported/setExported to MCSymbol{COFF,MachO,Wasm}

Make it clear that other object file formats (e.g. ELF) do not use this
field.

Added: 
    

Modified: 
    llvm/include/llvm/MC/MCSymbol.h
    llvm/include/llvm/MC/MCSymbolCOFF.h
    llvm/include/llvm/MC/MCSymbolMachO.h
    llvm/include/llvm/MC/MCSymbolWasm.h
    llvm/include/llvm/MC/MCSymbolXCOFF.h
    llvm/lib/MC/MCContext.cpp
    llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/MC/MCSymbol.h b/llvm/include/llvm/MC/MCSymbol.h
index cbacd15bf6027..e31d0374baf4a 100644
--- a/llvm/include/llvm/MC/MCSymbol.h
+++ b/llvm/include/llvm/MC/MCSymbol.h
@@ -352,10 +352,6 @@ class MCSymbol {
     return Fragment;
   }
 
-  // For ELF, use MCSymbolELF::setBinding instead.
-  bool isExternal() const { return IsExternal; }
-  void setExternal(bool Value) const { IsExternal = Value; }
-
   // COFF-specific
   bool isWeakExternal() const { return IsWeakExternal; }
 

diff  --git a/llvm/include/llvm/MC/MCSymbolCOFF.h b/llvm/include/llvm/MC/MCSymbolCOFF.h
index 0742cf7b406c7..fe1e8f6836420 100644
--- a/llvm/include/llvm/MC/MCSymbolCOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolCOFF.h
@@ -33,6 +33,9 @@ class MCSymbolCOFF : public MCSymbol {
   MCSymbolCOFF(const MCSymbolTableEntry *Name, bool isTemporary)
       : MCSymbol(Name, isTemporary) {}
 
+  bool isExternal() const { return IsExternal; }
+  void setExternal(bool Value) const { IsExternal = Value; }
+
   uint16_t getType() const {
     return Type;
   }

diff  --git a/llvm/include/llvm/MC/MCSymbolMachO.h b/llvm/include/llvm/MC/MCSymbolMachO.h
index b2b4442e0d666..2b8bfe0dcac5e 100644
--- a/llvm/include/llvm/MC/MCSymbolMachO.h
+++ b/llvm/include/llvm/MC/MCSymbolMachO.h
@@ -46,6 +46,8 @@ class MCSymbolMachO : public MCSymbol {
   MCSymbolMachO(const MCSymbolTableEntry *Name, bool isTemporary)
       : MCSymbol(Name, isTemporary) {}
 
+  bool isExternal() const { return IsExternal; }
+  void setExternal(bool Value) const { IsExternal = Value; }
   bool isPrivateExtern() const { return IsPrivateExtern; }
   void setPrivateExtern(bool Value) { IsPrivateExtern = Value; }
 

diff  --git a/llvm/include/llvm/MC/MCSymbolWasm.h b/llvm/include/llvm/MC/MCSymbolWasm.h
index bd13896ac0712..5c9f14e5e6d64 100644
--- a/llvm/include/llvm/MC/MCSymbolWasm.h
+++ b/llvm/include/llvm/MC/MCSymbolWasm.h
@@ -37,6 +37,8 @@ class MCSymbolWasm : public MCSymbol {
   MCSymbolWasm(const MCSymbolTableEntry *Name, bool isTemporary)
       : MCSymbol(Name, isTemporary) {}
 
+  bool isExternal() const { return IsExternal; }
+  void setExternal(bool Value) const { IsExternal = Value; }
   const MCExpr *getSize() const { return SymbolSize; }
   void setSize(const MCExpr *SS) { SymbolSize = SS; }
 

diff  --git a/llvm/include/llvm/MC/MCSymbolXCOFF.h b/llvm/include/llvm/MC/MCSymbolXCOFF.h
index d86b2d7527fbe..e1d61e2bb76fb 100644
--- a/llvm/include/llvm/MC/MCSymbolXCOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolXCOFF.h
@@ -37,6 +37,8 @@ class MCSymbolXCOFF : public MCSymbol {
     return Name;
   }
 
+  bool isExternal() const { return IsExternal; }
+  void setExternal(bool Value) const { IsExternal = Value; }
   void setStorageClass(XCOFF::StorageClass SC) {
     StorageClass = SC;
   };

diff  --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp
index 1d211a19acdd5..5d9ddc2f1306c 100644
--- a/llvm/lib/MC/MCContext.cpp
+++ b/llvm/lib/MC/MCContext.cpp
@@ -326,7 +326,6 @@ MCSymbol *MCContext::cloneSymbol(MCSymbol &Sym) {
 
   // Ensure the original symbol is not emitted to the symbol table.
   Sym.IsTemporary = true;
-  Sym.setExternal(false);
   return NewSym;
 }
 

diff  --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
index 6b8d7f172d7f0..645575720e73a 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
@@ -144,7 +144,6 @@ void HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol(MCSymbol *Symbol,
   getAssembler().registerSymbol(*Symbol);
   auto ELFSymbol = static_cast<const MCSymbolELF *>(Symbol);
   ELFSymbol->setBinding(ELF::STB_LOCAL);
-  ELFSymbol->setExternal(false);
   HexagonMCEmitCommonSymbol(Symbol, Size, ByteAlignment, AccessSize);
 }
 


        


More information about the llvm-commits mailing list