[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / only-section-strip-undefined.test
blobc9d21ac8b2ee2d08528d264a49dcd2b3ee2e4683
1 ## Here we want to check that llvm-objcopy removes an undefined symbol
2 ## if all references to it have been stripped.
4 # RUN: yaml2obj --docnum=1 %s -o %t.o
5 # RUN: llvm-objcopy -j .other.section %t.o %t2.o
6 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s --implicit-check-not=bar
8 # RUN: llvm-objcopy -j .text -j .rela.text1 %t.o %t2.o
9 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s --check-prefix=BAR
11 # BAR: bar
13 --- !ELF
14 FileHeader:
15   Class:   ELFCLASS64
16   Data:    ELFDATA2LSB
17   Type:    ET_REL
18   Machine: EM_X86_64
19 Sections:
20   - Name:        .text
21     Type:        SHT_PROGBITS
22   - Name:        .rela.text1
23     Type:        SHT_RELA
24     Relocations:
25       - Offset:  0x0000000000000001
26         Symbol:  bar
27         Type:    R_X86_64_32
28   - Name:        .rela.text2
29     Type:        SHT_RELA
30     Relocations:
31       - Offset:  0x0000000000000001
32         Symbol:  bar
33         Type:    R_X86_64_32
34   - Name:        .other.section
35     Type:        SHT_PROGBITS
36 Symbols:
37   - Name:    bar
38     Binding: STB_GLOBAL
39 ...
41 ## Check we remove unreferenced undefined symbols, even if
42 ## they weren't previously referenced. This follows GNU.
44 # RUN: yaml2obj --docnum=2 %s -o %t.o
45 # RUN: llvm-objcopy -j .keep_me %t.o %t2.o
46 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s --implicit-check-not=bar
48 --- !ELF
49 FileHeader:
50   Class:   ELFCLASS64
51   Data:    ELFDATA2LSB
52   Type:    ET_REL
53   Machine: EM_X86_64
54 Sections:
55   - Name: .keep_me
56     Type: SHT_PROGBITS
57 Symbols:
58   - Name:    bar
59     Binding: STB_GLOBAL
60 ...