forked from OSchip/llvm-project
[Object][MachO] Rewrite macho-invalid-fat-arch-size into YAML
Summary: Rewrite one of the invalid macho test input file with YAML file. The original invalid macho is breaking our internal test infrastusture because it is too broken to be copy around. Need to relax an assertion in the YAML/MachoEmitter to allow yaml2obj to write an invalid object like this. rdar://problem/56879982 Reviewers: beanz, mtrent Reviewed By: beanz Subscribers: hiraditya, jkorous, dexonsmith, ributzka, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69856
This commit is contained in:
parent
dad7a18510
commit
6da58e7e0f
|
@ -494,7 +494,8 @@ void UniversalWriter::writeMachO(raw_ostream &OS) {
|
|||
writeFatArchs(OS);
|
||||
|
||||
auto &FatFile = *ObjectFile.FatMachO;
|
||||
assert(FatFile.FatArchs.size() == FatFile.Slices.size());
|
||||
assert(FatFile.FatArchs.size() > FatFile.Slices.size() &&
|
||||
"Cannot write Slices if not decribed in FatArches");
|
||||
for (size_t i = 0; i < FatFile.Slices.size(); i++) {
|
||||
ZeroToOffset(OS, FatFile.FatArchs[i].offset);
|
||||
MachOWriter Writer(FatFile.Slices[i]);
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,12 @@
|
|||
--- !fat-mach-o
|
||||
FatHeader:
|
||||
magic: 0xCAFEBABE
|
||||
nfat_arch: 1
|
||||
FatArchs:
|
||||
- cputype: 0x00000007
|
||||
cpusubtype: 0x00000003
|
||||
offset: 0x000000000000020
|
||||
size: 32
|
||||
align: 2
|
||||
Slices:
|
||||
...
|
|
@ -491,8 +491,8 @@ INVALID-EXPORT-OVERLAP: macho-invalid-export-overlap': truncated or malformed ob
|
|||
RUN: not llvm-objdump --macho --universal-headers %p/Inputs/macho-invalid-fat-header 2>&1 | FileCheck -check-prefix INVALID-FAT-HEADER %s
|
||||
INVALID-FAT-HEADER: macho-invalid-fat-header': truncated or malformed fat file (contains zero architecture types)
|
||||
|
||||
RUN: not llvm-objdump --macho --universal-headers %p/Inputs/macho-invalid-fat-arch-size 2>&1 | FileCheck -check-prefix INVALID-FAT-ARCH-SIZE %s
|
||||
INVALID-FAT-ARCH-SIZE: macho-invalid-fat-arch-size': truncated or malformed fat file (offset plus size of cputype (7) cpusubtype (3) extends past the end of the file)
|
||||
RUN: yaml2obj %p/Inputs/macho-invalid-fat-arch-size.yaml -o - | not llvm-objdump --macho --universal-headers - 2>&1 | FileCheck -check-prefix INVALID-FAT-ARCH-SIZE %s
|
||||
INVALID-FAT-ARCH-SIZE: '-': truncated or malformed fat file (offset plus size of cputype (7) cpusubtype (3) extends past the end of the file)
|
||||
|
||||
RUN: not llvm-objdump --macho --universal-headers %p/Inputs/macho-invalid-fat-arch-bigalign 2>&1 | FileCheck -check-prefix INVALID-FAT-ARCH-BIGALIGN %s
|
||||
INVALID-FAT-ARCH-BIGALIGN: macho-invalid-fat-arch-bigalign': truncated or malformed fat file (align (2^212) too large for cputype (7) cpusubtype (3) (maximum 2^15))
|
||||
|
|
Loading…
Reference in New Issue