## Check that llvm-objcopy does not produce an error for debug directory
## entries without a payload (e.g. IMAGE_DEBUG_TYPE_REPRO,
## IMAGE_DEBUG_TYPE_UNKNOWN) when patching entries that may have moved during
## a requested operation. Also check that the such debug entries are present
## in the output.
## The code to patch debug entries is executed even when no operation is
## requested. Hence the RUN line below invokes llvm-objcopy without any
## arguments.
# RUN: yaml2obj %s -o %t.in.exe
# RUN: llvm-objcopy %t.in.exe %t.out.exe
# RUN: llvm-readobj --coff-debug-directory %t.out.exe | FileCheck %s
# CHECK: Type: Repro (0x10)
# CHECK: Type: Unknown (0x0)
--- !COFF
OptionalHeader:
AddressOfEntryPoint: 4096
ImageBase: 1073741824
SectionAlignment: 4096
FileAlignment: 512
MajorOperatingSystemVersion: 6
MinorOperatingSystemVersion: 0
MajorImageVersion: 0
MinorImageVersion: 0
MajorSubsystemVersion: 6
MinorSubsystemVersion: 0
Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI
DLLCharacteristics: [ ]
SizeOfStackReserve: 1048576
SizeOfStackCommit: 4096
SizeOfHeapReserve: 1048576
SizeOfHeapCommit: 4096
Debug:
RelativeVirtualAddress: 8192
Size: 56
header:
Machine: IMAGE_FILE_MACHINE_AMD64
Characteristics: [ ]
sections:
- Name: .text
Characteristics: [ ]
VirtualAddress: 4096
VirtualSize: 3
SectionData: 31C0C3
- Name: .rdata
Characteristics: [ ]
VirtualAddress: 8192
VirtualSize: 56
## '10' in SectionData below indicates the Repro type for the first debug
## entry. The second entry has a type of Unknown ('00').
SectionData: 0000000047F96B2000000000100000000000000000000000000000000000000047F96B200000000000000000000000000000000000000000
symbols: []
...