summaryrefslogtreecommitdiff
path: root/include/llvm/MC
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-08-24 08:40:12 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-08-24 08:40:12 +0000
commit6aff2fbd56d4bc2d6029f7c9bd49a97f6dc01213 (patch)
treef0b95f730e178cc34e26a9625c07fc44569aaaa2 /include/llvm/MC
parent50e48b359eb4e3d3e22d6e447583619d1feaeeae (diff)
downloadllvm-6aff2fbd56d4bc2d6029f7c9bd49a97f6dc01213.tar.gz
llvm-6aff2fbd56d4bc2d6029f7c9bd49a97f6dc01213.tar.bz2
llvm-6aff2fbd56d4bc2d6029f7c9bd49a97f6dc01213.tar.xz
llvm-mc/Mach-O: Support symbol attributes.
- This is mostly complete, the main thing missing is .indirect_symbol support (which would be straight-forward, except that the way it is implemented in 'as' makes getting an exact .o match interesting). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79899 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/MC')
-rw-r--r--include/llvm/MC/MCAssembler.h28
1 files changed, 22 insertions, 6 deletions
diff --git a/include/llvm/MC/MCAssembler.h b/include/llvm/MC/MCAssembler.h
index bcd678deaa..aae5f08caa 100644
--- a/include/llvm/MC/MCAssembler.h
+++ b/include/llvm/MC/MCAssembler.h
@@ -317,6 +317,13 @@ public:
/// unit.
unsigned IsExternal : 1;
+ /// IsPrivateExtern - True if this symbol is private extern.
+ unsigned IsPrivateExtern : 1;
+
+ /// Flags - The Flags field is used by object file implementations to store
+ /// additional per symbol information which is not easily classified.
+ uint32_t Flags;
+
public:
// Only for use as sentinel.
MCSymbolData();
@@ -334,13 +341,22 @@ public:
uint64_t getOffset() const { return Offset; }
void setOffset(uint64_t Value) { Offset = Value; }
- /// @}
- /// @name Symbol Attributes
- /// @{
-
- bool isExternal() const { return IsExternal; }
- void setExternal(bool Value) { IsExternal = Value; }
+ /// @}
+ /// @name Symbol Attributes
+ /// @{
+
+ bool isExternal() const { return IsExternal; }
+ void setExternal(bool Value) { IsExternal = Value; }
+
+ bool isPrivateExtern() const { return IsPrivateExtern; }
+ void setPrivateExtern(bool Value) { IsPrivateExtern = Value; }
+
+ /// getFlags - Get the (implementation defined) symbol flags.
+ uint32_t getFlags() const { return Flags; }
+ /// setFlags - Set the (implementation defined) symbol flags.
+ void setFlags(uint32_t Value) { Flags = Value; }
+
/// @}
};