diff options
Diffstat (limited to 'llvm/test/tools/yaml2obj/ELF/program-header-align.yaml')
-rw-r--r-- | llvm/test/tools/yaml2obj/ELF/program-header-align.yaml | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/llvm/test/tools/yaml2obj/ELF/program-header-align.yaml b/llvm/test/tools/yaml2obj/ELF/program-header-align.yaml new file mode 100644 index 00000000000..98e81a43cae --- /dev/null +++ b/llvm/test/tools/yaml2obj/ELF/program-header-align.yaml @@ -0,0 +1,56 @@ +## Test the p_align field of a program header can be set explicitly or inferred +## from the maximum alignment of contained sections. + +## Explicit Align has priority over section alignments. + +# RUN: yaml2obj --docnum=1 %s -o %t +# RUN: llvm-readobj -l %t | FileCheck %s +# CHECK: ProgramHeader { +# CHECK-NOT: ProgramHeader { +# CHECK: Alignment: 16 +# CHECK-NEXT: } + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_NONE +Sections: + - Name: .tdata + Type: SHT_PROGBITS + AddressAlign: 4 + - Name: .tbss + Type: SHT_NOBITS + AddressAlign: 64 +ProgramHeaders: + - Type: PT_TLS + Align: 16 + Sections: + - Section: .tdata + - Section: .tbss + +## If Align is not specified, p_align is inferred from the maximum alignment +## of contained sections. + +# RUN: yaml2obj --docnum=2 %s -o %t +# RUN: llvm-readobj -l %t | FileCheck %s + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_NONE +Sections: + - Name: .text + Type: SHT_PROGBITS + AddressAlign: 4 + - Name: .text.hot + Type: SHT_PROGBITS + AddressAlign: 16 +ProgramHeaders: + - Type: PT_LOAD + Sections: + - Section: .text + - Section: .text.hot |