diff options
author | Sean Silva <silvas@purdue.edu> | 2013-06-13 22:19:54 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-06-13 22:19:54 +0000 |
commit | 45b812d1a79f3f8642821e65a25d92e3d741a095 (patch) | |
tree | 74268e265c5acf8722c0d31986104e81e0b64161 | |
parent | 274264ce2ba93d26702f7ebfe6aea121df44113f (diff) | |
download | llvm-45b812d1a79f3f8642821e65a25d92e3d741a095.tar.gz llvm-45b812d1a79f3f8642821e65a25d92e3d741a095.tar.bz2 llvm-45b812d1a79f3f8642821e65a25d92e3d741a095.tar.xz |
[yaml2obj] Add sh_addr via `Address` key.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183954 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Object/ELFYAML.h | 1 | ||||
-rw-r--r-- | lib/Object/ELFYAML.cpp | 1 | ||||
-rw-r--r-- | test/Object/yaml2obj-elf-section-basic.yaml | 2 | ||||
-rw-r--r-- | tools/yaml2obj/yaml2elf.cpp | 2 |
4 files changed, 5 insertions, 1 deletions
diff --git a/include/llvm/Object/ELFYAML.h b/include/llvm/Object/ELFYAML.h index dd9625e99e..401e4db733 100644 --- a/include/llvm/Object/ELFYAML.h +++ b/include/llvm/Object/ELFYAML.h @@ -53,6 +53,7 @@ struct Section { StringRef Name; ELF_SHT Type; ELF_SHF Flags; + llvm::yaml::Hex64 Address; }; struct Object { FileHeader Header; diff --git a/lib/Object/ELFYAML.cpp b/lib/Object/ELFYAML.cpp index e275a4a40a..9ce2b9baad 100644 --- a/lib/Object/ELFYAML.cpp +++ b/lib/Object/ELFYAML.cpp @@ -265,6 +265,7 @@ void MappingTraits<ELFYAML::Section>::mapping(IO &IO, IO.mapOptional("Name", Section.Name, StringRef()); IO.mapRequired("Type", Section.Type); IO.mapOptional("Flags", Section.Flags, ELFYAML::ELF_SHF(0)); + IO.mapOptional("Address", Section.Address, Hex64(0)); } void MappingTraits<ELFYAML::Object>::mapping(IO &IO, ELFYAML::Object &Object) { diff --git a/test/Object/yaml2obj-elf-section-basic.yaml b/test/Object/yaml2obj-elf-section-basic.yaml index 6d40952ec0..e59b450be0 100644 --- a/test/Object/yaml2obj-elf-section-basic.yaml +++ b/test/Object/yaml2obj-elf-section-basic.yaml @@ -9,6 +9,7 @@ Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Address: 0xDEADBEEF # CHECK: Section { # CHECK: Index: 0 @@ -21,3 +22,4 @@ Sections: # CHECK-NEXT: SHF_ALLOC (0x2) # CHECK-NEXT: SHF_EXECINSTR (0x4) # CHECK-NEXT: ] +# CHECK-NEXT: Address: 0xDEADBEEF diff --git a/tools/yaml2obj/yaml2elf.cpp b/tools/yaml2obj/yaml2elf.cpp index 235327bd05..1809bb5b2f 100644 --- a/tools/yaml2obj/yaml2elf.cpp +++ b/tools/yaml2obj/yaml2elf.cpp @@ -132,7 +132,7 @@ static void writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) { SHeader.sh_name = StrTab.addString(Sec.Name); SHeader.sh_type = Sec.Type; SHeader.sh_flags = Sec.Flags; - SHeader.sh_addr = 0; + SHeader.sh_addr = Sec.Address; SHeader.sh_offset = 0; SHeader.sh_size = 0; SHeader.sh_link = 0; |