xref: /llvm-project/llvm/test/tools/llvm-objcopy/MachO/bitcode-strip-remove-nonempty-segment.test (revision 59172194389c92f14057cfe97d6c0b26a4b1a6f1)
1## Test bitcode segment is not removed when not empty.
2# RUN: yaml2obj %s -o %t
3# RUN: llvm-bitcode-strip -r %t -o %t2
4# RUN: llvm-readobj --macho-segment --sections %t2 | FileCheck --implicit-check-not=Name: %s
5
6# CHECK:      Name: __text
7# CHECK-NEXT: Segment: __TEXT
8# CHECK:      Name: __bundle
9# CHECK-NEXT: Segment: __DATA
10# CHECK:      Name: __notbundle
11# CHECK-NEXT: Segment: __LLVM
12# CHECK:      Cmd: LC_SEGMENT_64
13# CHECK-NEXT: Name: __TEXT
14# CHECK:      Cmd: LC_SEGMENT_64
15# CHECK-NEXT: Name: __DATA
16# CHECK:      Cmd: LC_SEGMENT_64
17# CHECK-NEXT: Name: __LLVM
18
19--- !mach-o
20FileHeader:
21  magic:           0xFEEDFACF
22  cputype:         0x01000007
23  cpusubtype:      0x00000003
24  filetype:        0x00000001
25  ncmds:           3
26  sizeofcmds:      536
27  flags:           0x00002000
28  reserved:        0x00000000
29LoadCommands:
30  - cmd:             LC_SEGMENT_64
31    cmdsize:         152
32    segname:         __TEXT
33    vmaddr:          0
34    vmsize:          4
35    fileoff:         568
36    filesize:        4
37    maxprot:         7
38    initprot:        7
39    nsects:          1
40    flags:           0
41    Sections:
42      - sectname:        __text
43        segname:         __TEXT
44        addr:            0x0000000000000000
45        content:         'AABBCCDD'
46        size:            4
47        offset:          568
48        align:           0
49        reloff:          0x00000000
50        nreloc:          0
51        flags:           0x80000400
52        reserved1:       0x00000000
53        reserved2:       0x00000000
54        reserved3:       0x00000000
55  - cmd:             LC_SEGMENT_64
56    cmdsize:         152
57    segname:         __DATA
58    vmaddr:          4
59    vmsize:          4
60    fileoff:         572
61    filesize:        4
62    maxprot:         7
63    initprot:        7
64    nsects:          1
65    flags:           0
66    Sections:
67      - sectname:        __bundle
68        segname:         __DATA
69        addr:            0x0000000000000004
70        content:         'DDAADDAA'
71        size:            4
72        offset:          572
73        align:           0
74        reloff:          0x00000000
75        nreloc:          0
76        flags:           0x00000000
77        reserved1:       0x00000000
78        reserved2:       0x00000000
79        reserved3:       0x00000000
80  - cmd:             LC_SEGMENT_64
81    cmdsize:         232
82    segname:         __LLVM
83    vmaddr:          8
84    vmsize:          8
85    fileoff:         576
86    filesize:        8
87    maxprot:         7
88    initprot:        7
89    nsects:          2
90    flags:           0
91    Sections:
92      - sectname:        __bundle
93        segname:         __LLVM
94        addr:            0x0000000000000008
95        content:         'EEFFEEFF'
96        size:            4
97        offset:          576
98        align:           0
99        reloff:          0x00000000
100        nreloc:          0
101        flags:           0x00000000
102        reserved1:       0x00000000
103        reserved2:       0x00000000
104        reserved3:       0x00000000
105      - sectname:        __notbundle
106        segname:         __LLVM
107        addr:            0x0000000000000008
108        content:         'EEFFEEFF'
109        size:            4
110        offset:          580
111        align:           0
112        reloff:          0x00000000
113        nreloc:          0
114        flags:           0x00000000
115        reserved1:       0x00000000
116        reserved2:       0x00000000
117        reserved3:       0x00000000
118