[test] Pre-commit llvm.experimental.memset.pattern tests prior to MemoryLocation...
[llvm-project.git] / llvm / test / DebugInfo / Symbolize / ELF / symtab-file2.yaml
blobf86a934240d20f8208405f591f25b8c207976901
1 # RUN: yaml2obj --docnum=1 %s -o %t1
2 # RUN: llvm-symbolizer --obj=%t1 0 1 2 | FileCheck %s
4 ## The local symbol has no preceding STT_FILE. Its filename is unavailable.
5 # CHECK:       local
6 # CHECK-NEXT:  ??:0:0
7 # CHECK-EMPTY:
9 ## All local symbols precede all non-local symbols. When there are multiple
10 ## STT_FILE symbols, we cannot tell which file defines the non-local symbol in
11 ## question. We could tell if there is only one STT_FILE but in reality there
12 ## are always more than one file, so implementing the special case is not useful.
13 # CHECK-NEXT:  global
14 # CHECK-NEXT:  ??:0:0
15 # CHECK-EMPTY:
16 # CHECK-NEXT:  weak
17 # CHECK-NEXT:  ??:0:0
18 # CHECK-EMPTY:
20 --- !ELF
21 FileHeader:
22   Class:   ELFCLASS64
23   Data:    ELFDATA2LSB
24   Type:    ET_DYN
25   Machine: EM_X86_64
26 Sections:
27   - Name:  .text
28     Type:  SHT_PROGBITS
29     Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
30     Size:  3
31 Symbols:
32   - Name:    local
33     Section: .text
34     Value:   0
35   - Name:    1.c
36     Type:    STT_FILE
37     Index:   SHN_ABS
38   - Name:    global
39     Binding: STB_GLOBAL
40     Section: .text
41     Value:   1
42   - Name:    weak
43     Binding: STB_WEAK
44     Section: .text
45     Value:   2
47 ## If st_name of the STT_FILE symbols is invalid, the symbol name is lost as well.
48 ## TODO Keep the symbol name.
49 # RUN: yaml2obj --docnum=2 %s -o %t2
50 # RUN: not llvm-symbolizer --obj=%t2 0 0 2>&1 | FileCheck %s --check-prefix=CHECK2
52 # CHECK2:      llvm-symbolizer{{.*}}: error: '{{.*}}symtab-file2.yaml.tmp2': st_name (0xffff) is past the end of the string table of size
54 --- !ELF
55 FileHeader:
56   Class:   ELFCLASS64
57   Data:    ELFDATA2LSB
58   Type:    ET_DYN
59   Machine: EM_X86_64
60 Sections:
61   - Name:  .text
62     Type:  SHT_PROGBITS
63     Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
64     Size:  1
65 Symbols:
66   - StName:  0xffff
67     Type:    STT_FILE
68     Index:   SHN_ABS
69   - Name:    local
70     Section: .text
72 # RUN: yaml2obj --docnum=3 %s -o %t3
73 # RUN: llvm-symbolizer --obj=%t3 'DATA 0x1001' 2>&1 | FileCheck %s --check-prefix=CHECK3
75 # CHECK3:      code
76 # CHECK3-NEXT: 4096 2
77 # CHECK3-NEXT: ??:?
78 # CHECK3-EMPTY:
80 --- !ELF
81 FileHeader:
82   Class:   ELFCLASS64
83   Data:    ELFDATA2LSB
84   Type:    ET_DYN
85   Machine: EM_X86_64
86 Sections:
87   - Name:    .text
88     Type:    SHT_PROGBITS
89     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
90     Address: 0x1000
91     Size:    1
92   - Name:    .debug
93     Type:    SHT_PROGBITS
94     Address: 0x0000
95     Size:    0xFFFF
96 Symbols:
97   - Name:    debug
98     Section: .debug
99     Binding: STB_WEAK
100     Value:   0x1001
101     Size:    0
102   - Name:    code
103     Section: .text
104     Binding: STB_WEAK
105     Value:   0x1000
106     Size:    2