# RUN: yaml2obj --docnum=1 %s -o %t # RUN: llvm-ifs --input-format=ELF --output-ifs=- %t | FileCheck %s -DTARGET="{ ObjectFormat: ELF, Arch: x86_64, Endianness: little, BitWidth: 64 }" # RUN: llvm-ifs --input-format=ELF --output-ifs=- --hint-ifs-target="x86_64-linux-gnu" %t | FileCheck %s -DTARGET="x86_64-linux-gnu" --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .dynstr Type: SHT_STRTAB Flags: [ SHF_ALLOC ] Address: 0x0000 Content: "00" - Name: .dynamic Type: SHT_DYNAMIC Flags: [ SHF_ALLOC ] Address: 0x0000000000000008 Link: .dynstr AddressAlign: 0x0000000000000008 EntSize: 0x0000000000000010 Entries: - Tag: DT_STRSZ Value: 0x0000000000000001 - Tag: DT_STRTAB Value: 0x0000000000000000 - Tag: DT_SYMTAB Value: 0x0000000000000000 - Tag: DT_NULL Value: 0x0000000000000000 ProgramHeaders: - Type: PT_LOAD Flags: [ PF_R ] VAddr: 0x0000 Align: 8 FirstSec: .dynstr LastSec: .dynamic - Type: PT_DYNAMIC Flags: [ PF_X, PF_R ] VAddr: 0x0008 FirstSec: .dynamic LastSec: .dynamic # CHECK: --- !ifs-v1 # CHECK-NEXT: IfsVersion: {{[1-9]\d*\.(0|([1-9]\d*))}} # CHECK-NEXT: Target: [[TARGET]] # CHECK-NEXT: Symbols: [] # CHECK-NEXT: ... # HINTERR: error: Triple hint does not match the actual [[MSG]] # RUN: yaml2obj --docnum=1 %s -o %t # RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe --hint-ifs-target="aarch64-linux-gnu" %t 2>&1 | FileCheck %s -DMSG=architecture --check-prefix=HINTERR --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2MSB Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .dynstr Type: SHT_STRTAB Flags: [ SHF_ALLOC ] Address: 0x0000 Content: "00" - Name: .dynamic Type: SHT_DYNAMIC Flags: [ SHF_ALLOC ] Address: 0x0000000000000008 Link: .dynstr AddressAlign: 0x0000000000000008 EntSize: 0x0000000000000010 Entries: - Tag: DT_STRSZ Value: 0x0000000000000001 - Tag: DT_STRTAB Value: 0x0000000000000000 - Tag: DT_SYMTAB Value: 0x0000000000000000 - Tag: DT_NULL Value: 0x0000000000000000 ProgramHeaders: - Type: PT_LOAD Flags: [ PF_R ] VAddr: 0x0000 Align: 8 FirstSec: .dynstr LastSec: .dynamic - Type: PT_DYNAMIC Flags: [ PF_X, PF_R ] VAddr: 0x0008 FirstSec: .dynamic LastSec: .dynamic # RUN: yaml2obj --docnum=2 %s -o %t # RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe --hint-ifs-target="x86_64-unknown-linux-gnu" %t 2>&1 | FileCheck %s -DMSG="endianness" --check-prefix=HINTERR --- !ELF FileHeader: Class: ELFCLASS32 Data: ELFDATA2LSB Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .dynstr Type: SHT_STRTAB Flags: [ SHF_ALLOC ] Address: 0x0000 Content: "00" - Name: .dynamic Type: SHT_DYNAMIC Flags: [ SHF_ALLOC ] Address: 0x0000000000000008 Link: .dynstr AddressAlign: 0x0000000000000008 EntSize: 0x0000000000000010 Entries: - Tag: DT_STRSZ Value: 0x0000000000000001 - Tag: DT_STRTAB Value: 0x0000000000000000 - Tag: DT_SYMTAB Value: 0x0000000000000000 - Tag: DT_NULL Value: 0x0000000000000000 ProgramHeaders: - Type: PT_LOAD Flags: [ PF_R ] VAddr: 0x0000 Align: 8 FirstSec: .dynstr LastSec: .dynamic - Type: PT_DYNAMIC Flags: [ PF_X, PF_R ] VAddr: 0x0008 FirstSec: .dynamic LastSec: .dynamic # RUN: yaml2obj --docnum=3 %s -o %t # RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe --hint-ifs-target="x86_64-unknown-linux-gnu" %t 2>&1 | FileCheck %s -DMSG="bit width" --check-prefix=HINTERR