[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / overlap-chain.test
blob6b54e73b66a1fc684d6111b42a3a66ed4b082456
1 # This test tests how ParentSegment is set for Segments. In particular this test
2 # tests that if a chain of parents forms, the offsets are chosen for parents
3 # first despite the order of the list. It also tests multiple branches of the
4 # code that assigns parents.
6 # RUN: yaml2obj %s -o %t
7 # RUN: llvm-objcopy %t %t2
8 # RUN: llvm-readobj --program-headers %t2 | FileCheck %s
10 !ELF
11 FileHeader:
12   Class:           ELFCLASS64
13   Data:            ELFDATA2LSB
14   Type:            ET_EXEC
15   Machine:         EM_X86_64
16 Sections:
17   - Name:            .text
18     Type:            SHT_PROGBITS
19     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
20     AddressAlign:    0x1000
21     Size:            4096
22   - Name:            .text2
23     Type:            SHT_PROGBITS
24     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
25     AddressAlign:    0x1000
26     Size:            4096
27   - Name:            .text3
28     Type:            SHT_PROGBITS
29     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
30     AddressAlign:    0x1000
31     Size:            4096
32   - Name:            .text4
33     Type:            SHT_PROGBITS
34     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
35     AddressAlign:    0x1000
36     Size:            4096
37   - Name:            .text5
38     Type:            SHT_PROGBITS
39     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
40     AddressAlign:    0x1000
41     Size:            4096
42 ProgramHeaders:
43   - Type: PT_LOAD
44     Flags: [ PF_X, PF_R ]
45     Sections:
46       - Section: .text
47       - Section: .text2
48   - Type: PT_LOAD
49     Flags: [ PF_X, PF_R ]
50     Sections:
51       - Section: .text4
52       - Section: .text5
53   - Type: PT_LOAD
54     Flags: [ PF_X, PF_R ]
55     Sections:
56       - Section: .text3
57       - Section: .text4
58   - Type: PT_LOAD
59     Flags: [ PF_X, PF_R ]
60     Sections:
61       - Section: .text2
62       - Section: .text3
64 #CHECK:     ProgramHeaders [
65 #CHECK-NEXT:  ProgramHeader {
66 #CHECK-NEXT:    Type: PT_LOAD (0x1)
67 #CHECK-NEXT:    Offset: 0x1000
68 #CHECK-NEXT:    VirtualAddress: 0x0
69 #CHECK-NEXT:    PhysicalAddress: 0x0
70 #CHECK-NEXT:    FileSize: 8192
71 #CHECK-NEXT:    MemSize: 8192
72 #CHECK-NEXT:    Flags [ (0x5)
73 #CHECK-NEXT:      PF_R (0x4)
74 #CHECK-NEXT:      PF_X (0x1)
75 #CHECK-NEXT:    ]
76 #CHECK-NEXT:    Alignment: 4096
77 #CHECK-NEXT:  }
78 #CHECK-NEXT:  ProgramHeader {
79 #CHECK-NEXT:    Type: PT_LOAD (0x1)
80 #CHECK-NEXT:    Offset: 0x4000
81 #CHECK-NEXT:    VirtualAddress: 0x0
82 #CHECK-NEXT:    PhysicalAddress: 0x0
83 #CHECK-NEXT:    FileSize: 8192
84 #CHECK-NEXT:    MemSize: 8192
85 #CHECK-NEXT:    Flags [ (0x5)
86 #CHECK-NEXT:      PF_R (0x4)
87 #CHECK-NEXT:      PF_X (0x1)
88 #CHECK-NEXT:    ]
89 #CHECK-NEXT:    Alignment: 4096
90 #CHECK-NEXT:  }
91 #CHECK-NEXT:  ProgramHeader {
92 #CHECK-NEXT:    Type: PT_LOAD (0x1)
93 #CHECK-NEXT:    Offset: 0x3000
94 #CHECK-NEXT:    VirtualAddress: 0x0
95 #CHECK-NEXT:    PhysicalAddress: 0x0
96 #CHECK-NEXT:    FileSize: 8192
97 #CHECK-NEXT:    MemSize: 8192
98 #CHECK-NEXT:    Flags [ (0x5)
99 #CHECK-NEXT:      PF_R (0x4)
100 #CHECK-NEXT:      PF_X (0x1)
101 #CHECK-NEXT:    ]
102 #CHECK-NEXT:    Alignment: 4096
103 #CHECK-NEXT:  }
104 #CHECK-NEXT:  ProgramHeader {
105 #CHECK-NEXT:    Type: PT_LOAD (0x1)
106 #CHECK-NEXT:    Offset: 0x2000
107 #CHECK-NEXT:    VirtualAddress: 0x0
108 #CHECK-NEXT:    PhysicalAddress: 0x0
109 #CHECK-NEXT:    FileSize: 8192
110 #CHECK-NEXT:    MemSize: 8192
111 #CHECK-NEXT:    Flags [ (0x5)
112 #CHECK-NEXT:      PF_R (0x4)
113 #CHECK-NEXT:      PF_X (0x1)
114 #CHECK-NEXT:    ]
115 #CHECK-NEXT:    Alignment: 4096
116 #CHECK-NEXT:  }
117 #CHECK-NEXT:]