diff options
Diffstat (limited to 'llvm/test/tools/yaml2obj/ELF/implicit-sections-info.yaml')
-rw-r--r-- | llvm/test/tools/yaml2obj/ELF/implicit-sections-info.yaml | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/llvm/test/tools/yaml2obj/ELF/implicit-sections-info.yaml b/llvm/test/tools/yaml2obj/ELF/implicit-sections-info.yaml new file mode 100644 index 00000000000..d7d530d3960 --- /dev/null +++ b/llvm/test/tools/yaml2obj/ELF/implicit-sections-info.yaml @@ -0,0 +1,113 @@ +## Check the values of sh_info fields set by default for +## explicitly listed .dynstr, .dynsym, .strtab and .symtab +## sections. +## +## For symbol table sections, sh_info has a value which is +## one greater than the symbol table index of the last +## local symbol. +## +## sh_info isn't set for string table sections. + +# RUN: yaml2obj --docnum=1 %s -o %t +# RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE1 + +# CASE1: Name: .symtab +# CASE1: Info: +# CASE1-SAME: 2 +# CASE1: Name: .strtab +# CASE1: Info: +# CASE1-SAME: 0 +# CASE1: Name: .dynsym +# CASE1: Info: +# CASE1-SAME: 1 +# CASE1: Name: .dynstr +# CASE1: Info: +# CASE1-SAME: 0 + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_X86_64 +Sections: + - Name: .symtab + Type: SHT_SYMTAB + - Name: .strtab + Type: SHT_STRTAB + - Name: .dynsym + Type: SHT_DYNSYM + - Name: .dynstr + Type: SHT_STRTAB +Symbols: + - Name: local + - Name: global1 + Binding: STB_GLOBAL +DynamicSymbols: + - Name: global2 + Binding: STB_GLOBAL + +## In the case when these sections are not defined in YAML, the +## behavior is the same as when we define them, but do not set the Info. + +# RUN: yaml2obj --docnum=2 %s -o %t +# RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE1 + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_X86_64 +Symbols: + - Name: local + - Name: global1 + Binding: STB_GLOBAL +DynamicSymbols: + - Name: global2 + Binding: STB_GLOBAL + +## Check we are able to set any sh_info explicitly. + +# RUN: yaml2obj --docnum=3 %s -o %t +# RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE2 + +# CASE2: Name: .dynstr +# CASE2: Info: +# CASE2-SAME: 10 +# CASE2: Name: .dynsym +# CASE2: Info: +# CASE2-SAME: 11 +# CASE2: Name: .strtab +# CASE2: Info: +# CASE2-SAME: 12 +# CASE2: Name: .symtab +# CASE2: Info: +# CASE2-SAME: 13 + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_X86_64 +Sections: + - Name: .dynstr + Type: SHT_STRTAB + Info: 10 + - Name: .dynsym + Type: SHT_DYNSYM + Info: 11 + - Name: .strtab + Type: SHT_STRTAB + Info: 12 + - Name: .symtab + Type: SHT_SYMTAB + Info: 13 +Symbols: + - Name: local + - Name: global1 + Binding: STB_GLOBAL +DynamicSymbols: + - Name: global2 + Binding: STB_GLOBAL |