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.
diff --git a/llvm/include/llvm/MC/MCSymbol.h b/llvm/include/llvm/MC/MCSymbol.h
index cbacd15..e31d037 100644
--- a/llvm/include/llvm/MC/MCSymbol.h
+++ b/llvm/include/llvm/MC/MCSymbol.h
@@ -352,10 +352,6 @@
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 0742cf7..fe1e8f6 100644
--- a/llvm/include/llvm/MC/MCSymbolCOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolCOFF.h
@@ -33,6 +33,9 @@
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 b2b4442..2b8bfe0 100644
--- a/llvm/include/llvm/MC/MCSymbolMachO.h
+++ b/llvm/include/llvm/MC/MCSymbolMachO.h
@@ -46,6 +46,8 @@
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 bd13896..5c9f14e 100644
--- a/llvm/include/llvm/MC/MCSymbolWasm.h
+++ b/llvm/include/llvm/MC/MCSymbolWasm.h
@@ -37,6 +37,8 @@
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 d86b2d7..e1d61e2 100644
--- a/llvm/include/llvm/MC/MCSymbolXCOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolXCOFF.h
@@ -37,6 +37,8 @@
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 1d211a1..5d9ddc2 100644
--- a/llvm/lib/MC/MCContext.cpp
+++ b/llvm/lib/MC/MCContext.cpp
@@ -326,7 +326,6 @@
// 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 6b8d7f1..6455757 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
@@ -144,7 +144,6 @@
getAssembler().registerSymbol(*Symbol);
auto ELFSymbol = static_cast<const MCSymbolELF *>(Symbol);
ELFSymbol->setBinding(ELF::STB_LOCAL);
- ELFSymbol->setExternal(false);
HexagonMCEmitCommonSymbol(Symbol, Size, ByteAlignment, AccessSize);
}