From 65e6467e693c2389d137f07f94ecc087e2894d25 Mon Sep 17 00:00:00 2001 From: Simon Atanasyan Date: Fri, 6 Jun 2014 07:41:57 +0000 Subject: [yaml2obj][obj2yaml] Support ELF symbol's visibility flags (default/hidden/protected). llvm-svn: 210316 --- llvm/lib/Object/ELFYAML.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'llvm/lib') diff --git a/llvm/lib/Object/ELFYAML.cpp b/llvm/lib/Object/ELFYAML.cpp index 4c52f9c0be0..dc3d4678250 100644 --- a/llvm/lib/Object/ELFYAML.cpp +++ b/llvm/lib/Object/ELFYAML.cpp @@ -368,6 +368,16 @@ void ScalarEnumerationTraits::enumeration( #undef ECase } +void ScalarEnumerationTraits::enumeration( + IO &IO, ELFYAML::ELF_STV &Value) { +#define ECase(X) IO.enumCase(Value, #X, ELF::X); + ECase(STV_DEFAULT) + ECase(STV_INTERNAL) + ECase(STV_HIDDEN) + ECase(STV_PROTECTED) +#undef ECase +} + void ScalarEnumerationTraits::enumeration( IO &IO, ELFYAML::ELF_REL &Value) { const auto *Object = static_cast(IO.getContext()); @@ -649,6 +659,7 @@ void MappingTraits::mapping(IO &IO, ELFYAML::Symbol &Symbol) { IO.mapOptional("Section", Symbol.Section, StringRef()); IO.mapOptional("Value", Symbol.Value, Hex64(0)); IO.mapOptional("Size", Symbol.Size, Hex64(0)); + IO.mapOptional("Visibility", Symbol.Visibility, ELFYAML::ELF_STV(0)); } void MappingTraits::mapping( -- cgit v1.2.3