[SandboxIR][Doc] Add Quick start notes (#123992)
[llvm-project.git] / lld / test / ELF / invalid / symtab-sh-info-dup.test
blobf48938d5b6ea8be6d32b9ed74727551860e6a295
1 # REQUIRES: x86
2 ## The ELF spec says all symbols with STB_LOCAL binding precede the weak and
3 ## global symbols. If a local symbol is found in the non-local part of the
4 ## symbol table, make sure we have filled in all entries of InputFile::symbols.
5 ## Otherwise a null entry can lead to a null pointer dereference when iterating
6 ## over InputFile::symbols.
8 # RUN: yaml2obj %s -o %t.o
9 # RUN: not ld.lld %t.o %t.o -o /dev/null 2>&1 | FileCheck %s
11 # CHECK:      error: {{.*}}.o: symbol (2) has invalid binding: 0
12 # CHECK-NEXT: error: {{.*}}.o: symbol (2) has invalid binding: 0
13 # CHECK-NEXT: error: duplicate symbol: _start
14 # CHECK-NEXT: >>> defined at {{.*}}.o:(.text+0x0)
15 # CHECK-NEXT: >>> defined at {{.*}}.o:(.text+0x0)
16 # CHECK-EMPTY:
17 # CHECK-NEXT: error: duplicate symbol: local
18 # CHECK-NEXT: >>> defined at {{.*}}.o:(.text+0x0)
19 # CHECK-NEXT: >>> defined at {{.*}}.o:(.text+0x0)
20 # CHECK-EMPTY:
22 # RUN: ld.lld --noinhibit-exec %t.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=WARN
23 # WARN: warning: {{.*}}.o: symbol (2) has invalid binding: 0
25 !ELF
26 FileHeader:
27   Class:   ELFCLASS64
28   Data:    ELFDATA2LSB
29   Type:    ET_REL
30   Machine: EM_X86_64
31 Sections:
32   - Type:  SHT_PROGBITS
33     Name:  .text
34     Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
35 Symbols:
36   - Name:    _start
37     Section: .text
38     Binding: STB_GLOBAL
39   - Name:    local
40     Section: .text
41     Binding: STB_LOCAL