| # This test has an S_GPROC32_ID symbol with an invalid type index. Make sure we |
| # keep the record, or we'll have unbalanced scopes, which is bad. This situation |
| # can arise when we can't find the type server PDB. |
| |
| # RUN: yaml2obj %s -o %t.obj |
| # RUN: lld-link %t.obj -out:%t.exe -debug -pdb:%t.pdb -nodefaultlib -entry:main |
| # RUN: llvm-pdbutil dump -symbols %t.pdb | FileCheck %s |
| |
| # CHECK: Mod 0000 | `{{.*}}pdb-invalid-func-type.yaml.tmp.obj`: |
| # CHECK: 4 | S_GPROC32 [size = 44] `main` |
| # CHECK: parent = 0, end = 80, addr = 0001:0000, code size = 3 |
| # CHECK: 48 | S_FRAMEPROC [size = 32] |
| # CHECK: 80 | S_END [size = 4] |
| |
| --- !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_GPROC32_ID |
| ProcSym: |
| CodeSize: 3 |
| DbgStart: 0 |
| DbgEnd: 2 |
| # Corrupt function type! |
| FunctionType: 4101 |
| Flags: [ ] |
| DisplayName: main |
| - Kind: S_FRAMEPROC |
| FrameProcSym: |
| TotalFrameBytes: 0 |
| PaddingFrameBytes: 0 |
| OffsetToPadding: 0 |
| BytesOfCalleeSavedRegisters: 0 |
| OffsetOfExceptionHandler: 0 |
| SectionIdOfExceptionHandler: 0 |
| Flags: [ AsynchronousExceptionHandling, OptimizedForSpeed ] |
| - Kind: S_PROC_ID_END |
| ScopeEndSym: |
| - !Lines |
| CodeSize: 3 |
| Flags: [ ] |
| RelocOffset: 0 |
| RelocSegment: 0 |
| Blocks: |
| - FileName: 'c:\src\llvm-project\build\t.c' |
| Lines: |
| - Offset: 0 |
| LineStart: 1 |
| IsStatement: true |
| EndDelta: 0 |
| Columns: |
| - !FileChecksums |
| Checksums: |
| - FileName: 'c:\src\llvm-project\build\t.c' |
| Kind: MD5 |
| Checksum: 270A878DCC1B845655B162F56C4F5020 |
| - !StringTable |
| Strings: |
| - 'c:\src\llvm-project\build\t.c' |
| Relocations: |
| - VirtualAddress: 44 |
| SymbolName: main |
| Type: IMAGE_REL_AMD64_SECREL |
| - VirtualAddress: 48 |
| SymbolName: main |
| Type: IMAGE_REL_AMD64_SECTION |
| - VirtualAddress: 100 |
| SymbolName: main |
| Type: IMAGE_REL_AMD64_SECREL |
| - VirtualAddress: 104 |
| SymbolName: main |
| Type: IMAGE_REL_AMD64_SECTION |
| - Name: '.debug$T' |
| Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ] |
| Alignment: 1 |
| Types: |
| - Kind: LF_ARGLIST |
| ArgList: |
| ArgIndices: [ 0 ] |
| - Kind: LF_PROCEDURE |
| Procedure: |
| ReturnType: 116 |
| CallConv: NearC |
| Options: [ None ] |
| ParameterCount: 0 |
| ArgumentList: 4096 |
| - Kind: LF_FUNC_ID |
| FuncId: |
| ParentScope: 0 |
| FunctionType: 4097 |
| Name: main |
| - Name: '.text$mn' |
| Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] |
| Alignment: 16 |
| SectionData: 33C0C3 |
| 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: 328 |
| NumberOfRelocations: 4 |
| NumberOfLinenumbers: 0 |
| CheckSum: 0 |
| Number: 0 |
| - Name: '.debug$T' |
| Value: 0 |
| SectionNumber: 2 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_STATIC |
| SectionDefinition: |
| Length: 564 |
| NumberOfRelocations: 0 |
| NumberOfLinenumbers: 0 |
| CheckSum: 0 |
| Number: 0 |
| - Name: '.text$mn' |
| Value: 0 |
| SectionNumber: 3 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_STATIC |
| SectionDefinition: |
| Length: 3 |
| NumberOfRelocations: 0 |
| NumberOfLinenumbers: 0 |
| CheckSum: 4021952397 |
| Number: 0 |
| - Name: main |
| Value: 0 |
| SectionNumber: 3 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_FUNCTION |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| ... |