diff options
author | Sean Silva <silvas@purdue.edu> | 2013-06-18 23:14:03 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-06-18 23:14:03 +0000 |
commit | afcf60fe15999ea07193118f447a34f41171e433 (patch) | |
tree | 50990c3d24b6d6181abb247883b52fcfb8bcd273 /include/llvm/Object/ELFYAML.h | |
parent | bd4bd3686d5e623514cc7564227a6fa45254c610 (diff) | |
download | llvm-afcf60fe15999ea07193118f447a34f41171e433.tar.gz llvm-afcf60fe15999ea07193118f447a34f41171e433.tar.bz2 llvm-afcf60fe15999ea07193118f447a34f41171e433.tar.xz |
[yaml2obj][ELF] Rudimentary symbol table support.
Currently, we only output the name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184255 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Object/ELFYAML.h')
-rw-r--r-- | include/llvm/Object/ELFYAML.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/Object/ELFYAML.h b/include/llvm/Object/ELFYAML.h index 04ba0a6622..d6ce525248 100644 --- a/include/llvm/Object/ELFYAML.h +++ b/include/llvm/Object/ELFYAML.h @@ -49,6 +49,9 @@ struct FileHeader { ELF_EM Machine; llvm::yaml::Hex64 Entry; }; +struct Symbol { + StringRef Name; +}; struct Section { StringRef Name; ELF_SHT Type; @@ -57,6 +60,8 @@ struct Section { object::yaml::BinaryRef Content; StringRef Link; llvm::yaml::Hex64 AddressAlign; + // For SHT_SYMTAB; should be empty otherwise. + std::vector<Symbol> Symbols; }; struct Object { FileHeader Header; @@ -67,6 +72,7 @@ struct Object { } // end namespace llvm LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::Section) +LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::Symbol) namespace llvm { namespace yaml { @@ -107,6 +113,11 @@ struct MappingTraits<ELFYAML::FileHeader> { }; template <> +struct MappingTraits<ELFYAML::Symbol> { + static void mapping(IO &IO, ELFYAML::Symbol &Symbol); +}; + +template <> struct MappingTraits<ELFYAML::Section> { static void mapping(IO &IO, ELFYAML::Section &Section); }; |