diff --git a/llvm/test/tools/llvm-ifs/binary-read-bad-vaddr.test b/llvm/test/tools/llvm-ifs/binary-read-bad-vaddr.test --- a/llvm/test/tools/llvm-ifs/binary-read-bad-vaddr.test +++ b/llvm/test/tools/llvm-ifs/binary-read-bad-vaddr.test @@ -1,7 +1,7 @@ -# RUN: yaml2obj %s -o %t -# RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe %t 2>&1 | FileCheck %s +# RUN: yaml2obj %s --docnum=1 -o %t.1 +# RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe1 %t.1 2>&1 | FileCheck %s --check-prefix=ERR1 -!ELF +--- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB @@ -44,4 +44,54 @@ FirstSec: .dynamic LastSec: .dynamic -# CHECK: virtual address is not in any segment: 0x260 when locating dynamic string table section contents +# ERR1: virtual address is not in any segment: 0x260 when locating dynamic string table section contents + +# RUN: yaml2obj %s --docnum=2 -o %t.2 +# RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe2 %t.2 2>&1 | FileCheck %s --check-prefix=ERR2 + + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_X86_64 +Sections: + - Name: .dynstr + Type: SHT_STRTAB + Flags: [ SHF_ALLOC ] + Address: 0x1000 + Content: "00" + - Name: .dynamic + Type: SHT_DYNAMIC + Flags: [ SHF_ALLOC ] + Address: 0x0000000000001008 + Link: .dynstr + AddressAlign: 0x0000000000000008 + EntSize: 0x0000000000000010 + Entries: + - Tag: DT_SONAME + Value: 0x0000000000000000 + - Tag: DT_STRSZ + Value: 0x0000000000001000 # Bad size (no PT_LOAD for 0x2000 to 0x2FFF) + - Tag: DT_STRTAB + Value: 0x0000000000001000 + - Tag: DT_SYMTAB + Value: 0x0000000000001000 + - Tag: DT_NULL + Value: 0x0000000000000000 +ProgramHeaders: + - Type: PT_LOAD + Flags: [ PF_R ] + VAddr: 0x1000 + Align: 8 + FirstSec: .dynstr + LastSec: .dynamic + - Type: PT_DYNAMIC + Flags: [ PF_X, PF_R ] + VAddr: 0x1008 + FirstSec: .dynamic + LastSec: .dynamic + + +# ERR2: virtual address is not in any segment: 0x2000 when locating dynamic string table section contents