Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / ELF / invalid / symtab-sh-info.s
blob253bbf9e62d563394692f82fe443b68cad783cb5
1 ## .symtab's sh_info contains zero value. First entry in a .symtab is a
2 ## zero entry that must exist in a valid object, so sh_info can't be null.
3 ## Check we report a proper error for that case.
4 # RUN: yaml2obj --docnum=1 %s -o %t.o
5 # RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR1
6 # ERR1: invalid sh_info in symbol table
8 --- !ELF
9 FileHeader:
10 Class: ELFCLASS64
11 Data: ELFDATA2LSB
12 Type: ET_REL
13 Machine: EM_X86_64
14 Sections:
15 - Name: .symtab
16 Info: 0
17 Type: SHT_SYMTAB
18 Symbols:
19 - Name: foo
20 Binding: STB_GLOBAL
22 ## sh_info has value 2 what says that non-local symbol `foo` is local.
23 ## Check we report this case.
24 # RUN: yaml2obj --docnum=2 %s -o %t.o
25 # RUN: not ld.lld --noinhibit-exec %t.o -o /dev/null 2>&1 | FileCheck --check-prefix=ERR2 %s
26 # ERR2: error: {{.*}}.o: non-local symbol (1) found at index < .symtab's sh_info (2)
28 --- !ELF
29 FileHeader:
30 Class: ELFCLASS64
31 Data: ELFDATA2LSB
32 Type: ET_REL
33 Machine: EM_X86_64
34 Sections:
35 - Name: .symtab
36 Info: 2
37 Type: SHT_SYMTAB
38 Symbols:
39 - Name: foo
40 Binding: STB_GLOBAL
42 ## sh_info has value 0xff what is larger than number of symbols in a .symtab.
43 ## Check we report this case.
44 # RUN: yaml2obj --docnum=3 %s -o %t.o
45 # RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck --check-prefix=ERR1 %s
47 --- !ELF
48 FileHeader:
49 Class: ELFCLASS64
50 Data: ELFDATA2LSB
51 Type: ET_REL
52 Machine: EM_X86_64
53 Sections:
54 - Name: .symtab
55 Info: 0xff
56 Type: SHT_SYMTAB
57 Symbols:
58 - Name: foo
59 Binding: STB_GLOBAL