summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2014-06-06 07:41:57 +0000
committerSimon Atanasyan <simon@atanasyan.com>2014-06-06 07:41:57 +0000
commit65e6467e693c2389d137f07f94ecc087e2894d25 (patch)
tree91736c10ad2313fc46f0ec9d95680b9035ba7983 /llvm/include
parent558b3363a795b59e2b596d7d83e05953de270e60 (diff)
downloadbcm5719-llvm-65e6467e693c2389d137f07f94ecc087e2894d25.tar.gz
bcm5719-llvm-65e6467e693c2389d137f07f94ecc087e2894d25.zip
[yaml2obj][obj2yaml] Support ELF symbol's visibility flags (default/hidden/protected).
llvm-svn: 210316
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Object/ELFYAML.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/include/llvm/Object/ELFYAML.h b/llvm/include/llvm/Object/ELFYAML.h
index 699a38671bb..42eeb0ef752 100644
--- a/llvm/include/llvm/Object/ELFYAML.h
+++ b/llvm/include/llvm/Object/ELFYAML.h
@@ -44,6 +44,7 @@ LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_REL)
// Just use 64, since it can hold 32-bit values too.
LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_SHF)
LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STT)
+LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STV)
// For now, hardcode 64 bits everywhere that 32 or 64 would be needed
// since 64-bit can hold 32-bit values too.
@@ -62,6 +63,7 @@ struct Symbol {
StringRef Section;
llvm::yaml::Hex64 Value;
llvm::yaml::Hex64 Size;
+ ELF_STV Visibility;
};
struct LocalGlobalWeakSymbols {
std::vector<Symbol> Local;
@@ -168,6 +170,11 @@ struct ScalarEnumerationTraits<ELFYAML::ELF_STT> {
};
template <>
+struct ScalarEnumerationTraits<ELFYAML::ELF_STV> {
+ static void enumeration(IO &IO, ELFYAML::ELF_STV &Value);
+};
+
+template <>
struct ScalarEnumerationTraits<ELFYAML::ELF_REL> {
static void enumeration(IO &IO, ELFYAML::ELF_REL &Value);
};
OpenPOWER on IntegriCloud