[HLSL] Implement RWBuffer::operator[] via __builtin_hlsl_resource_getpointer (#117017)
[llvm-project.git] / llvm / test / tools / llvm-objcopy / ELF / overlap-chain.test
blob6d7893706459b9c1894e07d1bd282a554c89afde
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     FirstSec: .text
46     LastSec:  .text2
47   - Type:     PT_LOAD
48     Flags:    [ PF_X, PF_R ]
49     FirstSec: .text4
50     LastSec:  .text5
51   - Type:     PT_LOAD
52     Flags:    [ PF_X, PF_R ]
53     FirstSec: .text3
54     LastSec:  .text4
55   - Type:     PT_LOAD
56     Flags:    [ PF_X, PF_R ]
57     FirstSec: .text2
58     LastSec:  .text3
60 #CHECK:     ProgramHeaders [
61 #CHECK-NEXT:  ProgramHeader {
62 #CHECK-NEXT:    Type: PT_LOAD (0x1)
63 #CHECK-NEXT:    Offset: 0x1000
64 #CHECK-NEXT:    VirtualAddress: 0x0
65 #CHECK-NEXT:    PhysicalAddress: 0x0
66 #CHECK-NEXT:    FileSize: 8192
67 #CHECK-NEXT:    MemSize: 8192
68 #CHECK-NEXT:    Flags [ (0x5)
69 #CHECK-NEXT:      PF_R (0x4)
70 #CHECK-NEXT:      PF_X (0x1)
71 #CHECK-NEXT:    ]
72 #CHECK-NEXT:    Alignment: 4096
73 #CHECK-NEXT:  }
74 #CHECK-NEXT:  ProgramHeader {
75 #CHECK-NEXT:    Type: PT_LOAD (0x1)
76 #CHECK-NEXT:    Offset: 0x4000
77 #CHECK-NEXT:    VirtualAddress: 0x0
78 #CHECK-NEXT:    PhysicalAddress: 0x0
79 #CHECK-NEXT:    FileSize: 8192
80 #CHECK-NEXT:    MemSize: 8192
81 #CHECK-NEXT:    Flags [ (0x5)
82 #CHECK-NEXT:      PF_R (0x4)
83 #CHECK-NEXT:      PF_X (0x1)
84 #CHECK-NEXT:    ]
85 #CHECK-NEXT:    Alignment: 4096
86 #CHECK-NEXT:  }
87 #CHECK-NEXT:  ProgramHeader {
88 #CHECK-NEXT:    Type: PT_LOAD (0x1)
89 #CHECK-NEXT:    Offset: 0x3000
90 #CHECK-NEXT:    VirtualAddress: 0x0
91 #CHECK-NEXT:    PhysicalAddress: 0x0
92 #CHECK-NEXT:    FileSize: 8192
93 #CHECK-NEXT:    MemSize: 8192
94 #CHECK-NEXT:    Flags [ (0x5)
95 #CHECK-NEXT:      PF_R (0x4)
96 #CHECK-NEXT:      PF_X (0x1)
97 #CHECK-NEXT:    ]
98 #CHECK-NEXT:    Alignment: 4096
99 #CHECK-NEXT:  }
100 #CHECK-NEXT:  ProgramHeader {
101 #CHECK-NEXT:    Type: PT_LOAD (0x1)
102 #CHECK-NEXT:    Offset: 0x2000
103 #CHECK-NEXT:    VirtualAddress: 0x0
104 #CHECK-NEXT:    PhysicalAddress: 0x0
105 #CHECK-NEXT:    FileSize: 8192
106 #CHECK-NEXT:    MemSize: 8192
107 #CHECK-NEXT:    Flags [ (0x5)
108 #CHECK-NEXT:      PF_R (0x4)
109 #CHECK-NEXT:      PF_X (0x1)
110 #CHECK-NEXT:    ]
111 #CHECK-NEXT:    Alignment: 4096
112 #CHECK-NEXT:  }
113 #CHECK-NEXT:]