119 lines
4.1 KiB
YAML
119 lines
4.1 KiB
YAML
# RUN: yaml2obj %s -o %t.obj
|
|
# RUN: lld-link %t.obj %S/Inputs/pdb-import-gc.lib -debug -entry:main \
|
|
# RUN: -nodefaultlib -opt:ref -out:%t.exe -pdb:%t.pdb
|
|
# RUN: llvm-pdbutil dump -globals -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: Global Symbols
|
|
# CHECK-NEXT: ============================================================
|
|
# CHECK-NEXT: Records
|
|
# CHECK-NEXT: 20 | S_GDATA32 [size = 32] `__imp___wc_mb_cur`
|
|
# CHECK-NEXT: type = 0x0070 (char), addr = 0000:0000
|
|
|
|
# CHECK: Symbols
|
|
# CHECK-NEXT: ============================================================
|
|
# CHECK-NEXT: Mod 0000 | `{{.*}}pdb-import-gc.yaml.tmp.obj`:
|
|
# CHECK-NEXT: Mod 0001 | `* 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: __imp___wc_mb_cur
|
|
- !StringTable
|
|
Strings:
|
|
Relocations:
|
|
- VirtualAddress: 20
|
|
SymbolName: __imp___wc_mb_cur
|
|
Type: IMAGE_REL_AMD64_SECREL
|
|
- VirtualAddress: 24
|
|
SymbolName: __imp___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: 488B05000000000FBE00C3
|
|
Relocations:
|
|
- VirtualAddress: 3
|
|
SymbolName: __imp___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: __imp___wc_mb_cur
|
|
Value: 0
|
|
SectionNumber: 0
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
...
|