MCStreamer: Add a few more "symbol attributes".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74077 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index 9374529..7637416 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -23,9 +23,21 @@
class MCStreamer {
public:
enum SymbolAttr {
- Global,
- Weak,
- PrivateExtern
+ Global, /// .globl
+ Hidden, /// .hidden (ELF)
+ IndirectSymbol, /// .indirect_symbol (Apple)
+ Internal, /// .internal (ELF)
+ LazyReference, /// .lazy_reference (Apple)
+ NoDeadStrip, /// .no_dead_strip (Apple)
+ PrivateExtern, /// .private_extern (Apple)
+ Protected, /// .protected (ELF)
+ Reference, /// .reference (Apple)
+ Weak, /// .weak
+ WeakDefinition, /// .weak_definition (Apple)
+ WeakReference, /// .weak_reference (Apple)
+
+ SymbolAttrFirst = Global,
+ SymbolAttrLast = WeakReference
};
private:
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp
index efc9e65..33d72e2 100644
--- a/lib/MC/MCAsmStreamer.cpp
+++ b/lib/MC/MCAsmStreamer.cpp
@@ -102,8 +102,17 @@
SymbolAttr Attribute) {
switch (Attribute) {
case Global: OS << ".globl"; break;
- case Weak: OS << ".weak"; break;
+ case Hidden: OS << ".hidden"; break;
+ case IndirectSymbol: OS << ".indirect_symbol"; break;
+ case Internal: OS << ".internal"; break;
+ case LazyReference: OS << ".lazy_reference"; break;
+ case NoDeadStrip: OS << ".no_dead_strip"; break;
case PrivateExtern: OS << ".private_extern"; break;
+ case Protected: OS << ".protected"; break;
+ case Reference: OS << ".reference"; break;
+ case Weak: OS << ".weak"; break;
+ case WeakDefinition: OS << ".weak_definition"; break;
+ case WeakReference: OS << ".weak_reference"; break;
}
OS << ' ' << Symbol->getName() << '\n';