summaryrefslogtreecommitdiff
path: root/include/llvm/Object/ELFYAML.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Object/ELFYAML.h')
-rw-r--r--include/llvm/Object/ELFYAML.h11
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);
};