# RUN: yaml2obj %s -o %t.obj
# RUN: llvm-mc %S/Inputs/pdb-global-gc.s -triple x86_64-windows-msvc -filetype=obj -o %t2.obj
# RUN: lld-link %t.obj %t2.obj -debug -entry:main \
# RUN:          -nodefaultlib -debug -out:%t.exe -pdb:%t.pdb -verbose
# RUN: llvm-pdbutil dump -symbols %t.pdb | FileCheck %s

# This tests the case where an __imp_ chunk is discarded by linker GC. The debug
# info may refer to the __imp_ symbol still.

# Compile this code with MSVC to regenerate the test case:
#   extern char __declspec(dllimport) __wc_mb_cur;
#   int discarded() { return __wc_mb_cur; }
#   int main() { return g2; }

# CHECK:                           Symbols
# CHECK: ============================================================
# CHECK:   Mod 0000 | `{{.*}}pdb-global-gc.yaml.tmp.obj`:
# CHECK:     4 | S_GDATA32 [size = 28] `__wc_mb_cur`
# CHECK-NEXT:       type = 0x0070 (char), addr = 0000:0000
# CHECK:   Mod 0001 | `{{.*}}pdb-global-gc.yaml.tmp2.obj`:
# CHECK:   Mod 0002 | `* Linker *`:

--- !COFF
header:
  Machine:         IMAGE_FILE_MACHINE_AMD64
  Characteristics: [  ]
sections:
  - Name:            '.debug$S'
    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
    Alignment:       1
    Subsections:
      - !Symbols
        Records:
          - Kind:            S_GDATA32
            DataSym:
              Type:            112
              DisplayName:     __wc_mb_cur
      - !StringTable
        Strings:
    Relocations:
      - VirtualAddress:  20
        SymbolName:      __wc_mb_cur
        Type:            IMAGE_REL_AMD64_SECREL
      - VirtualAddress:  24
        SymbolName:      __wc_mb_cur
        Type:            IMAGE_REL_AMD64_SECTION
  - Name:            '.text$mn'
    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
    Alignment:       16
    SectionData:     0FBE0500000000C3
    Relocations:
      - VirtualAddress:  3
        SymbolName:      __wc_mb_cur
        Type:            IMAGE_REL_AMD64_REL32
  - Name:            '.text$mn'
    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
    Alignment:       16
    SectionData:     B82A000000C3
symbols:
  - Name:            '.debug$S'
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          240
      NumberOfRelocations: 2
      NumberOfLinenumbers: 0
      CheckSum:        0
      Number:          0
  - Name:            '.text$mn'
    Value:           0
    SectionNumber:   2
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          11
      NumberOfRelocations: 1
      NumberOfLinenumbers: 0
      CheckSum:        2906070869
      Number:          0
      Selection:       IMAGE_COMDAT_SELECT_NODUPLICATES
  - Name:            '.text$mn'
    Value:           0
    SectionNumber:   3
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          6
      NumberOfRelocations: 0
      NumberOfLinenumbers: 0
      CheckSum:        2139436471
      Number:          0
      Selection:       IMAGE_COMDAT_SELECT_NODUPLICATES
  - Name:            discarded
    Value:           0
    SectionNumber:   2
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            main
    Value:           0
    SectionNumber:   3
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            __wc_mb_cur
    Value:           0
    SectionNumber:   0
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
...
