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