1## This test is checking the handling of invalid/malformed note entries for 2## AMDGPU code object v2. 3 4# RUN: yaml2obj %s -o %t.o 5# RUN: llvm-readobj --notes %t.o | FileCheck %s --match-full-lines --check-prefix=LLVM 6# RUN: llvm-readelf --notes %t.o | FileCheck %s --match-full-lines --check-prefix=GNU 7 8# LLVM: NoteSections [ 9# LLVM-NEXT: NoteSection { 10# LLVM-NEXT: Name: .note.nt_amd_hsa_code_object_version_0 11# LLVM-NEXT: Offset: 0x40 12# LLVM-NEXT: Size: 0x14 13# LLVM-NEXT: Notes [ 14# LLVM-NEXT: { 15# LLVM-NEXT: Owner: AMD 16# LLVM-NEXT: Data size: 0x4 17# LLVM-NEXT: Type: NT_AMD_HSA_CODE_OBJECT_VERSION (AMD HSA Code Object Version) 18# LLVM-NEXT: AMD HSA Code Object Version: Invalid AMD HSA Code Object Version 19# LLVM-NEXT: } 20# LLVM-NEXT: ] 21# LLVM-NEXT: } 22# LLVM-NEXT: NoteSection { 23# LLVM-NEXT: Name: .note.nt_amd_hsa_code_object_version_1 24# LLVM-NEXT: Offset: 0x54 25# LLVM-NEXT: Size: 0x1C 26# LLVM-NEXT: Notes [ 27# LLVM-NEXT: { 28# LLVM-NEXT: Owner: AMD 29# LLVM-NEXT: Data size: 0xC 30# LLVM-NEXT: Type: NT_AMD_HSA_CODE_OBJECT_VERSION (AMD HSA Code Object Version) 31# LLVM-NEXT: AMD HSA Code Object Version: Invalid AMD HSA Code Object Version 32# LLVM-NEXT: } 33# LLVM-NEXT: ] 34# LLVM-NEXT: } 35# LLVM-NEXT: NoteSection { 36# LLVM-NEXT: Name: .note.nt_amd_hsa_hsail_0 37# LLVM-NEXT: Offset: 0x70 38# LLVM-NEXT: Size: 0x1C 39# LLVM-NEXT: Notes [ 40# LLVM-NEXT: { 41# LLVM-NEXT: Owner: AMD 42# LLVM-NEXT: Data size: 0xA 43# LLVM-NEXT: Type: NT_AMD_HSA_HSAIL (AMD HSA HSAIL Properties) 44# LLVM-NEXT: AMD HSA HSAIL Properties: Invalid AMD HSA HSAIL Properties 45# LLVM-NEXT: } 46# LLVM-NEXT: ] 47# LLVM-NEXT: } 48# LLVM-NEXT: NoteSection { 49# LLVM-NEXT: Name: .note.nt_amd_hsa_hsail_1 50# LLVM-NEXT: Offset: 0x8C 51# LLVM-NEXT: Size: 0x24 52# LLVM-NEXT: Notes [ 53# LLVM-NEXT: { 54# LLVM-NEXT: Owner: AMD 55# LLVM-NEXT: Data size: 0x14 56# LLVM-NEXT: Type: NT_AMD_HSA_HSAIL (AMD HSA HSAIL Properties) 57# LLVM-NEXT: AMD HSA HSAIL Properties: Invalid AMD HSA HSAIL Properties 58# LLVM-NEXT: } 59# LLVM-NEXT: ] 60# LLVM-NEXT: } 61# LLVM-NEXT: NoteSection { 62# LLVM-NEXT: Name: .note.nt_amd_hsa_isa_version_0 63# LLVM-NEXT: Offset: 0xB0 64# LLVM-NEXT: Size: 0x18 65# LLVM-NEXT: Notes [ 66# LLVM-NEXT: { 67# LLVM-NEXT: Owner: AMD 68# LLVM-NEXT: Data size: 0x8 69# LLVM-NEXT: Type: NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 70# LLVM-NEXT: AMD HSA ISA Version: Invalid AMD HSA ISA Version 71# LLVM-NEXT: } 72# LLVM-NEXT: ] 73# LLVM-NEXT: } 74# LLVM-NEXT: NoteSection { 75# LLVM-NEXT: Name: .note.nt_amd_hsa_isa_version_1 76# LLVM-NEXT: Offset: 0xC8 77# LLVM-NEXT: Size: 0x28 78# LLVM-NEXT: Notes [ 79# LLVM-NEXT: { 80# LLVM-NEXT: Owner: AMD 81# LLVM-NEXT: Data size: 0x17 82# LLVM-NEXT: Type: NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 83# LLVM-NEXT: AMD HSA ISA Version: Invalid AMD HSA ISA Version 84# LLVM-NEXT: } 85# LLVM-NEXT: ] 86# LLVM-NEXT: } 87# LLVM-NEXT: NoteSection { 88# LLVM-NEXT: Name: .note.nt_amd_hsa_isa_version_2 89# LLVM-NEXT: Offset: 0xF0 90# LLVM-NEXT: Size: 0x28 91# LLVM-NEXT: Notes [ 92# LLVM-NEXT: { 93# LLVM-NEXT: Owner: AMD 94# LLVM-NEXT: Data size: 0x17 95# LLVM-NEXT: Type: NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 96# LLVM-NEXT: AMD HSA ISA Version: Invalid AMD HSA ISA Version 97# LLVM-NEXT: } 98# LLVM-NEXT: ] 99# LLVM-NEXT: } 100# LLVM-NEXT: NoteSection { 101# LLVM-NEXT: Name: .note.nt_amd_hsa_isa_version_3 102# LLVM-NEXT: Offset: 0x118 103# LLVM-NEXT: Size: 0x28 104# LLVM-NEXT: Notes [ 105# LLVM-NEXT: { 106# LLVM-NEXT: Owner: AMD 107# LLVM-NEXT: Data size: 0x17 108# LLVM-NEXT: Type: NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 109# LLVM-NEXT: AMD HSA ISA Version: Invalid AMD HSA ISA Version 110# LLVM-NEXT: } 111# LLVM-NEXT: ] 112# LLVM-NEXT: } 113# LLVM-NEXT: NoteSection { 114# LLVM-NEXT: Name: .note.nt_amd_pal_metadata 115# LLVM-NEXT: Offset: 0x140 116# LLVM-NEXT: Size: 0x14 117# LLVM-NEXT: Notes [ 118# LLVM-NEXT: { 119# LLVM-NEXT: Owner: AMD 120# LLVM-NEXT: Data size: 0x4 121# LLVM-NEXT: Type: NT_AMD_PAL_METADATA (AMD PAL Metadata) 122# LLVM-NEXT: AMD PAL Metadata: Invalid AMD PAL Metadata 123# LLVM-NEXT: } 124# LLVM-NEXT: ] 125# LLVM-NEXT: } 126# LLVM-NEXT: ] 127 128# GNU: Displaying notes found in: .note.nt_amd_hsa_code_object_version_0 129# GNU-NEXT: Owner Data size Description 130# GNU-NEXT: AMD 0x00000004 NT_AMD_HSA_CODE_OBJECT_VERSION (AMD HSA Code Object Version) 131# GNU-NEXT: AMD HSA Code Object Version: 132# GNU-NEXT: Invalid AMD HSA Code Object Version 133# GNU-EMPTY: 134# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_code_object_version_1 135# GNU-NEXT: Owner Data size Description 136# GNU-NEXT: AMD 0x0000000c NT_AMD_HSA_CODE_OBJECT_VERSION (AMD HSA Code Object Version) 137# GNU-NEXT: AMD HSA Code Object Version: 138# GNU-NEXT: Invalid AMD HSA Code Object Version 139# GNU-EMPTY: 140# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_hsail_0 141# GNU-NEXT: Owner Data size Description 142# GNU-NEXT: AMD 0x0000000a NT_AMD_HSA_HSAIL (AMD HSA HSAIL Properties) 143# GNU-NEXT: AMD HSA HSAIL Properties: 144# GNU-NEXT: Invalid AMD HSA HSAIL Properties 145# GNU-EMPTY: 146# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_hsail_1 147# GNU-NEXT: Owner Data size Description 148# GNU-NEXT: AMD 0x00000014 NT_AMD_HSA_HSAIL (AMD HSA HSAIL Properties) 149# GNU-NEXT: AMD HSA HSAIL Properties: 150# GNU-NEXT: Invalid AMD HSA HSAIL Properties 151# GNU-EMPTY: 152# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_isa_version_0 153# GNU-NEXT: Owner Data size Description 154# GNU-NEXT: AMD 0x00000008 NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 155# GNU-NEXT: AMD HSA ISA Version: 156# GNU-NEXT: Invalid AMD HSA ISA Version 157# GNU-EMPTY: 158# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_isa_version_1 159# GNU-NEXT: Owner Data size Description 160# GNU-NEXT: AMD 0x00000017 NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 161# GNU-NEXT: AMD HSA ISA Version: 162# GNU-NEXT: Invalid AMD HSA ISA Version 163# GNU-EMPTY: 164# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_isa_version_2 165# GNU-NEXT: Owner Data size Description 166# GNU-NEXT: AMD 0x00000017 NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 167# GNU-NEXT: AMD HSA ISA Version: 168# GNU-NEXT: Invalid AMD HSA ISA Version 169# GNU-EMPTY: 170# GNU-NEXT: Displaying notes found in: .note.nt_amd_hsa_isa_version_3 171# GNU-NEXT: Owner Data size Description 172# GNU-NEXT: AMD 0x00000017 NT_AMD_HSA_ISA_VERSION (AMD HSA ISA Version) 173# GNU-NEXT: AMD HSA ISA Version: 174# GNU-NEXT: Invalid AMD HSA ISA Version 175# GNU-EMPTY: 176# GNU-NEXT: Displaying notes found in: .note.nt_amd_pal_metadata 177# GNU-NEXT: Owner Data size Description 178# GNU-NEXT: AMD 0x00000004 NT_AMD_PAL_METADATA (AMD PAL Metadata) 179# GNU-NEXT: AMD PAL Metadata: 180# GNU-NEXT: Invalid AMD PAL Metadata 181 182--- !ELF 183FileHeader: 184 Class: ELFCLASS64 185 Data: ELFDATA2LSB 186 Type: ET_REL 187Sections: 188 - Name: .note.nt_amd_hsa_code_object_version_0 189 Type: SHT_NOTE 190 Notes: 191 - Name: AMD 192 Type: NT_AMD_HSA_CODE_OBJECT_VERSION 193 ## Desc size is too small (less than sizeof(CodeObjectVersion)). 194 Desc: '02000000' 195 - Name: .note.nt_amd_hsa_code_object_version_1 196 Type: SHT_NOTE 197 Notes: 198 - Name: AMD 199 Type: NT_AMD_HSA_CODE_OBJECT_VERSION 200 ## Desc size is too large (more than sizeof(CodeObjectVersion)). 201 Desc: '020000000200000002000000' 202 - Name: .note.nt_amd_hsa_hsail_0 203 Type: SHT_NOTE 204 Notes: 205 - Name: AMD 206 Type: NT_AMD_HSA_HSAIL 207 ## Desc size is too small (less than sizeof(HSAILProperties)). 208 Desc: '02000000010000000102' 209 - Name: .note.nt_amd_hsa_hsail_1 210 Type: SHT_NOTE 211 Notes: 212 - Name: AMD 213 Type: NT_AMD_HSA_HSAIL 214 ## Desc size is too large (more than sizeof(HSAILProperties)). 215 Desc: '0200000001000000010202000000010200000001' 216 - Name: .note.nt_amd_hsa_isa_version_0 217 Type: SHT_NOTE 218 Notes: 219 - Name: AMD 220 Type: NT_AMD_HSA_ISA_VERSION 221 ## Desc size is too small (less than sizeof(IsaVersion)). 222 Desc: '0400070008000000' 223 - Name: .note.nt_amd_hsa_isa_version_1 224 Type: SHT_NOTE 225 Notes: 226 - Name: AMD 227 Type: NT_AMD_HSA_ISA_VERSION 228 ## Desc size is too small (less than sizeof(IsaVersion) + 229 ## VendorNameSize + ArchitectureNameSize). 230 Desc: '04000700080000000000000002000000414d4400414d44' 231 - Name: .note.nt_amd_hsa_isa_version_2 232 Type: SHT_NOTE 233 Notes: 234 - Name: AMD 235 Type: NT_AMD_HSA_ISA_VERSION 236 ## VendorNameSize is 0. 237 Desc: '00000700080000000000000002000000414d4400414d44' 238 - Name: .note.nt_amd_hsa_isa_version_3 239 Type: SHT_NOTE 240 Notes: 241 - Name: AMD 242 Type: NT_AMD_HSA_ISA_VERSION 243 ## ArchitectureNameSize is 0. 244 Desc: '04000000080000000000000002000000414d4400414d44' 245 - Name: .note.nt_amd_pal_metadata 246 Type: SHT_NOTE 247 Notes: 248 - Name: AMD 249 Type: NT_AMD_PAL_METADATA 250 ## Desc size is not a multiple of sizeof(PALMetadata). 251 Desc: '02000000' 252