| # RUN: yaml2obj %s -o %t.obj |
| # RUN: lld-link -safeseh:no -debug -entry:main -out:%t.exe -pdb:%t.pdb %t.obj |
| # RUN: llvm-pdbutil dump -globals %t.pdb | FileCheck %s |
| |
| # There is an S_GDATA32 symbol record with .secrel32 and .secidx relocations in |
| # it in this debug info. This is similar to the relocations in the loadcfg.obj |
| # file in the MSVC CRT. We need to make sure that our relocation logic matches |
| # MSVC's for these absolute, linker-provided symbols. |
| |
| # CHECK: Global Symbols |
| # CHECK-NEXT: ============================================================ |
| # CHECK-NEXT: Records |
| # CHECK-NEXT: 20 | S_GDATA32 [size = 40] `___safe_se_handler_table` |
| # CHECK-NEXT: type = 0x0022 (unsigned long), addr = 0003:0000 |
| |
| --- !COFF |
| header: |
| Machine: IMAGE_FILE_MACHINE_I386 |
| 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: 34 |
| DisplayName: ___safe_se_handler_table |
| - !StringTable |
| Strings: |
| Relocations: |
| - VirtualAddress: 20 |
| SymbolName: ___safe_se_handler_table |
| Type: IMAGE_REL_I386_SECREL |
| - VirtualAddress: 24 |
| SymbolName: ___safe_se_handler_table |
| Type: IMAGE_REL_I386_SECTION |
| - Name: '.text$mn' |
| Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] |
| Alignment: 16 |
| SectionData: 488D0500000000C3 |
| Relocations: |
| - VirtualAddress: 3 |
| SymbolName: ___safe_se_handler_table |
| Type: IMAGE_REL_I386_REL32 |
| 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: 372 |
| NumberOfRelocations: 6 |
| 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: 8 |
| NumberOfRelocations: 1 |
| NumberOfLinenumbers: 0 |
| CheckSum: 1092178131 |
| Number: 0 |
| - Name: _main |
| Value: 0 |
| SectionNumber: 2 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_FUNCTION |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| - Name: ___safe_se_handler_table |
| Value: 0 |
| SectionNumber: 0 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| ... |
| |