# This is an object compiled with /Zi (see the LF_TYPESERVER2 record) without an # adjacent type server PDB. Test that LLD fails gracefully on it. # Also try linking another OBJ with a reference to the same PDB # RUN: yaml2obj %s -o %t1.obj # RUN: yaml2obj %p/Inputs/pdb-type-server-missing-2.yaml -o %t2.obj # RUN: lld-link %t1.obj %t2.obj -out:%t.exe -debug -pdb:%t.pdb -nodefaultlib -entry:main 2>&1 | FileCheck %s -check-prefix=WARN # RUN: lld-link %t1.obj %t2.obj -out:%t.exe -debug -pdb:%t.pdb -nodefaultlib -entry:main /ignore:4099 2>&1 | FileCheck %s -check-prefix=IGNORE -allow-empty # RUN: not lld-link %t1.obj %t2.obj -out:%t.exe -debug -pdb:%t.pdb -nodefaultlib -entry:main /WX 2>&1 | FileCheck %s -check-prefix=ERR # RUN: lld-link %t1.obj %t2.obj -out:%t.exe -debug -pdb:%t.pdb -nodefaultlib -entry:main /ignore:4099 /WX 2>&1 | FileCheck %s -check-prefix=IGNORE-ERR -allow-empty # WARN: warning: Cannot use debug info for '{{.*}}.obj' [LNK4099] # WARN-NEXT: {{N|n}}o such file or directory # IGNORE-NOT: warning: Cannot use debug info for '{{.*}}.obj' [LNK4099] # IGNORE-NOT: {{N|n}}o such file or directory # ERR: error: Cannot use debug info for '{{.*}}.obj' [LNK4099] # ERR-NEXT: {{N|n}}o such file or directory # IGNORE-ERR-NOT: error: Cannot use debug info for '{{.*}}.obj' [LNK4099] # IGNORE-ERR-NOT: {{N|n}}o such file or directory --- !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 FunctionType: 4199 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_TYPESERVER2 TypeServer2: Guid: '{01DF191B-22BF-6B42-96CE-5258B8329FE5}' Age: 18 Name: 'C:\src\llvm-project\build\definitely_not_found_for_sure.pdb' - 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 ...