| ## 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: [] |
| ... |