## In this case, we have a program header with a file size that ## overflows the binary size. Check llvm-objcopy doesn't crash ## and report this error properly. # RUN: yaml2obj --docnum=1 %s -o %t1.o # RUN: not llvm-objcopy %t1.o 2>&1 | FileCheck %s --check-prefix=ERR1 # ERR1: error: program header with offset 0x78 and file size 0x100000 goes past the end of the file --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 Sections: - Name: .foo Type: SHT_PROGBITS ProgramHeaders: - Type: PT_LOAD FileSize: 0x100000 FirstSec: .foo LastSec: .foo ## A similar case, but now the p_offset property of the program header is too large. # RUN: yaml2obj --docnum=2 %s -o %t2.o # RUN: not llvm-objcopy %t2.o 2>&1 | FileCheck %s --check-prefix=ERR2 # ERR2: error: program header with offset 0x100000 and file size 0x1 goes past the end of the file --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 ProgramHeaders: - Type: PT_LOAD Offset: 0x100000 FileSize: 1