[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / tools / llvm-objdump / X86 / elf-dynamic-symbols.test
blobd4e9a6500771acf81ee8888c50a4fcce6b2036fc
1 ## Test that llvm-objdump can dump dynamic symbols.
2 # RUN: yaml2obj --docnum=1 %s -o %t1
3 # RUN: llvm-objdump --dynamic-syms %t1 | \
4 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=DYNSYM
5 # RUN: llvm-objdump -T %t1 | \
6 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=DYNSYM
8 #       DYNSYM:{{.*}}file format elf64-x86-64
9 # DYNSYM-EMPTY:
10 #  DYNSYM-NEXT:DYNAMIC SYMBOL TABLE:
11 #  DYNSYM-NEXT:0000000000000000 l    DO .data   0000000000000000 localsym
12 #  DYNSYM-NEXT:0000000000000000 g    DO .data   0000000000000000 globalsym
13 #  DYNSYM-NEXT:0000000000000000 u    DO .data   0000000000000000 uniqueglobalsym
14 #  DYNSYM-NEXT:0000000000000000  w   DO .data   0000000000000000 weaksym
15 #  DYNSYM-NEXT:0000000000000000 g    Df .data   0000000000000000 filesym
16 #  DYNSYM-NEXT:0000000000000000 g    DF .data   0000000000000000 funcsym
17 # DYNSYM-EMPTY:
19 --- !ELF
20 FileHeader:
21   Class:   ELFCLASS64
22   Data:    ELFDATA2LSB
23   Type:    ET_DYN
24   Machine: EM_X86_64
25 Sections:
26   - Name:  .data
27     Type:  SHT_PROGBITS
28     Flags: [ SHF_ALLOC, SHF_WRITE ]
29 DynamicSymbols:
30   - Name:    localsym
31     Type:    STT_OBJECT
32     Section: .data
33     Binding: STB_LOCAL
34   - Name:    globalsym
35     Type:    STT_OBJECT
36     Section: .data
37     Binding: STB_GLOBAL
38   - Name:    uniqueglobalsym
39     Type:    STT_OBJECT
40     Section: .data
41     Binding: STB_GNU_UNIQUE
42   - Name:    weaksym
43     Type:    STT_OBJECT
44     Section: .data
45     Binding: STB_WEAK
46   - Name:    filesym
47     Type:    STT_FILE
48     Section: .data
49     Binding: STB_GLOBAL
50   - Name:    funcsym
51     Type:    STT_FUNC
52     Section: .data
53     Binding: STB_GLOBAL
55 ## Test dumping ELF files with no .dynsym section.
56 # RUN: yaml2obj --docnum=2 %s -o %t2
57 # RUN: llvm-objdump --dynamic-syms %t2 | \
58 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NODYNSYM
59 # RUN: llvm-objdump -T %t2 | \
60 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NODYNSYM
62 #       NODYNSYM:DYNAMIC SYMBOL TABLE:
63 # NODYNSYM-EMPTY:
65 --- !ELF
66 FileHeader:
67   Class:   ELFCLASS64
68   Data:    ELFDATA2LSB
69   Type:    ET_DYN
70   Machine: EM_X86_64
72 ## Test dumping ELF files with logically empty .dynsym section (only has a 0-index NULL symbol).
73 # RUN: yaml2obj --docnum=3 %s -o %t3
74 # RUN: llvm-objdump --dynamic-syms %t3 | \
75 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=ONLY-NULL
76 # RUN: llvm-objdump -T %t3 | \
77 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=ONLY-NULL
79 #       ONLY-NULL:DYNAMIC SYMBOL TABLE:
80 # ONLY-NULL-EMPTY:
82 --- !ELF
83 FileHeader:
84   Class:   ELFCLASS64
85   Data:    ELFDATA2LSB
86   Type:    ET_DYN
87   Machine: EM_X86_64
88 DynamicSymbols: []
90 ## Test dumping ELF files with truly empty .dynsym section (size of .dynsym section is 0).
91 # RUN: yaml2obj --docnum=4 %s -o %t4
92 # RUN: llvm-objdump --dynamic-syms %t4 | \
93 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=EMPTY
94 # RUN: llvm-objdump -T %t4 | \
95 # RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=EMPTY
97 #       EMPTY:DYNAMIC SYMBOL TABLE:
98 # EMPTY-EMPTY:
100 --- !ELF
101 FileHeader:
102   Class:   ELFCLASS64
103   Data:    ELFDATA2LSB
104   Type:    ET_DYN
105   Machine: EM_X86_64
106 Sections:
107   - Name: .dynsym
108     Type: SHT_DYNSYM
109     Size: 0