forked from OSchip/llvm-project
121 lines
4.2 KiB
YAML
121 lines
4.2 KiB
YAML
# 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 -globals %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 = 28] `__wc_mb_cur`
|
|
# CHECK-NEXT: type = 0x0070 (char), addr = 0000:0000
|
|
|
|
# CHECK: Symbols
|
|
# CHECK: ============================================================
|
|
# CHECK-NEXT: Mod 0000 | `{{.*}}pdb-global-gc.yaml.tmp.obj`:
|
|
# CHECK-NEXT: Mod 0001 | `{{.*}}pdb-global-gc.yaml.tmp2.obj`:
|
|
# CHECK-NEXT: 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
|
|
...
|