1# Show that llvm-readobj can print the type of symbol for all known symbol types 2# and also for unknown types, both in the os/processor specific ranges and not, 3# for both GNU and LLVM styles. 4 5# RUN: yaml2obj %s -o %t 6# RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=LLVM 7# RUN: llvm-readelf --symbols %t | FileCheck %s --check-prefix=GNU 8 9# LLVM: Name: notype 10# LLVM: Type: None 11# LLVM: Name: object 12# LLVM: Type: Object 13# LLVM: Name: func 14# LLVM: Type: Function 15# LLVM: Name: .text 16# LLVM: Type: Section 17# LLVM: Name: file 18# LLVM: Type: File 19# LLVM: Name: common 20# LLVM: Type: Common 21# LLVM: Name: tls 22# LLVM: Type: TLS 23# LLVM: Name: gnu_ifunc 24# LLVM: Type: GNU_IFunc 25 26# LLVM: Name: os_specific_11 27# LLVM: Type: OS Specific (0xB) 28# LLVM: Name: os_specific_12 29# LLVM: Type: OS Specific (0xC) 30 31# LLVM: Name: proc_specific_13 32# LLVM: Type: Proc Specific (0xD) 33# LLVM: Name: proc_specific_14 34# LLVM: Type: Proc Specific (0xE) 35# LLVM: Name: proc_specific_15 36# LLVM: Type: Proc Specific (0xF) 37 38# LLVM: Name: unknown_7 39# LLVM: Type: Unknown (0x7) 40# LLVM: Name: unknown_8 41# LLVM: Type: Unknown (0x8) 42# LLVM: Name: unknown_9 43# LLVM: Type: Unknown (0x9) 44 45# GNU: NOTYPE {{.*}} notype 46# GNU: OBJECT {{.*}} object 47# GNU: FUNC {{.*}} func 48# GNU: SECTION {{.*}} .text 49# GNU: FILE {{.*}} file 50# GNU: COMMON {{.*}} common 51# GNU: TLS {{.*}} tls 52# GNU: IFUNC {{.*}} gnu_ifunc 53# GNU: <OS specific>: 11 {{.*}} os_specific_11 54# GNU: <OS specific>: 12 {{.*}} os_specific_12 55# GNU: <processor specific>: 13 {{.*}} proc_specific_13 56# GNU: <processor specific>: 14 {{.*}} proc_specific_14 57# GNU: <processor specific>: 15 {{.*}} proc_specific_15 58# GNU: <unknown>: 7 {{.*}} unknown_7 59# GNU: <unknown>: 8 {{.*}} unknown_8 60# GNU: <unknown>: 9 {{.*}} unknown_9 61 62!ELF 63FileHeader: 64 Class: ELFCLASS64 65 Data: ELFDATA2LSB 66 Type: ET_REL 67Sections: 68 - Name: .text 69 Type: SHT_PROGBITS 70Symbols: 71 - Name: notype 72 Type: STT_NOTYPE 73 Binding: STB_GLOBAL 74 - Name: object 75 Type: STT_OBJECT 76 Binding: STB_GLOBAL 77 - Name: func 78 Type: STT_FUNC 79 Binding: STB_GLOBAL 80 - Name: .text 81 Type: STT_SECTION 82 Section: .text 83 Binding: STB_GLOBAL 84 - Name: file 85 Type: STT_FILE 86 Binding: STB_GLOBAL 87 - Name: common 88 Type: STT_COMMON 89 Binding: STB_GLOBAL 90 - Name: tls 91 Type: STT_TLS 92 Binding: STB_GLOBAL 93 - Name: gnu_ifunc 94 Type: STT_GNU_IFUNC 95 Binding: STB_GLOBAL 96 - Name: os_specific_11 97 Type: 11 98 Binding: STB_GLOBAL 99 - Name: os_specific_12 100 Type: 12 101 Binding: STB_GLOBAL 102 - Name: proc_specific_13 103 Type: 13 104 Binding: STB_GLOBAL 105 - Name: proc_specific_14 106 Type: 14 107 Binding: STB_GLOBAL 108 - Name: proc_specific_15 109 Type: 15 110 Binding: STB_GLOBAL 111 - Name: unknown_7 112 Type: 7 113 Binding: STB_GLOBAL 114 - Name: unknown_8 115 Type: 8 116 Binding: STB_GLOBAL 117 - Name: unknown_9 118 Type: 9 119 Binding: STB_GLOBAL 120