summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/yaml2obj/ELF/program-header-align.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/yaml2obj/ELF/program-header-align.yaml')
-rw-r--r--llvm/test/tools/yaml2obj/ELF/program-header-align.yaml56
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
OpenPOWER on IntegriCloud