Test the linker line tables on roughly the following example:

==> foo.h <==
void bar(void);
inline void foo(void) {
  bar();
}
==> pdb_lines_1.c <==
#include "foo.h"
int main(void) {
  foo();
  return 42;
}
==> pdb_lines_2.c <==
void bar(void) {
}

$ cl -c -Z7 pdb_lines*.c

RUN: yaml2obj %S/Inputs/pdb_lines_1.yaml -o %t.pdb_lines_1.obj
RUN: yaml2obj %S/Inputs/pdb_lines_2.yaml -o %t.pdb_lines_2.obj
RUN: lld-link -debug -entry:main -nodefaultlib -out:%t.exe -pdb:%t.pdb %t.pdb_lines_1.obj %t.pdb_lines_2.obj
RUN: llvm-pdbutil pdb2yaml -modules -module-files -subsections=lines,fc %t.pdb | FileCheck %s

CHECK-LABEL: DbiStream:       
CHECK-NEXT:   VerHeader:       V70
CHECK-NEXT:   Age:             1
CHECK-NEXT:   BuildNumber:     0
CHECK-NEXT:   PdbDllVersion:   0
CHECK-NEXT:   PdbDllRbld:      0
CHECK-NEXT:   Flags:           0
CHECK-NEXT:   MachineType:     x86
CHECK-NEXT:   Modules:         

CHECK-LABEL:    - Module:          {{.*}}pdb_lines_1.obj
CHECK-NEXT:       ObjFile:         {{.*}}pdb_lines_1.obj
CHECK-NEXT:       SourceFiles:     
CHECK-NEXT:         - '{{.*}}pdb_lines_1.c'
CHECK-NEXT:         - '{{.*}}foo.h'
CHECK-NEXT:       Subsections:     
CHECK-NEXT:         - !Lines
CHECK-NEXT:           CodeSize:        19
CHECK-NEXT:           Flags:           [  ]
CHECK-NEXT:           RelocOffset:     0
CHECK-NEXT:           RelocSegment:    2
CHECK-NEXT:           Blocks:          
CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_1.c'
CHECK-NEXT:               Lines:           
CHECK-NEXT:                 - Offset:          0
CHECK-NEXT:                   LineStart:       2
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:                 - Offset:          4
CHECK-NEXT:                   LineStart:       3
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:                 - Offset:          9
CHECK-NEXT:                   LineStart:       4
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:                 - Offset:          14
CHECK-NEXT:                   LineStart:       5
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:               Columns:         
CHECK-NEXT:         - !FileChecksums
CHECK-NEXT:           Checksums:       
CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_1.c'
CHECK-NEXT:               Kind:            MD5
CHECK-NEXT:               Checksum:        4EB19DCD86C3BA2238A255C718572E7B
CHECK-NEXT:             - FileName:        '{{.*}}foo.h'
CHECK-NEXT:               Kind:            MD5
CHECK-NEXT:               Checksum:        061EB73ABB642532857A4F1D9CBAC323
CHECK-NEXT:         - !Lines
CHECK-NEXT:           CodeSize:        14
CHECK-NEXT:           Flags:           [  ]
CHECK-NEXT:           RelocOffset:     32
CHECK-NEXT:           RelocSegment:    2
CHECK-NEXT:           Blocks:          
CHECK-NEXT:             - FileName:        '{{.*}}foo.h'
CHECK-NEXT:               Lines:           
CHECK-NEXT:                 - Offset:          0
CHECK-NEXT:                   LineStart:       2
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:                 - Offset:          4
CHECK-NEXT:                   LineStart:       3
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:                 - Offset:          9
CHECK-NEXT:                   LineStart:       4
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:               Columns:         

CHECK-LABEL:    - Module:          {{.*}}pdb_lines_2.obj
CHECK-NEXT:       ObjFile:         {{.*}}pdb_lines_2.obj
CHECK-NEXT:       SourceFiles:     
CHECK-NEXT:         - '{{.*}}pdb_lines_2.c'
CHECK-NEXT:       Subsections:     
CHECK-NEXT:         - !Lines
CHECK-NEXT:           CodeSize:        1
CHECK-NEXT:           Flags:           [  ]
CHECK-NEXT:           RelocOffset:     48
CHECK-NEXT:           RelocSegment:    2
CHECK-NEXT:           Blocks:          
CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_2.c'
CHECK-NEXT:               Lines:           
CHECK-NEXT:                 - Offset:          0
CHECK-NEXT:                   LineStart:       1
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:                 - Offset:          0
CHECK-NEXT:                   LineStart:       2
CHECK-NEXT:                   IsStatement:     true
CHECK-NEXT:                   EndDelta:        0
CHECK-NEXT:               Columns:         
CHECK-NEXT:         - !FileChecksums
CHECK-NEXT:           Checksums:       
CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_2.c'
CHECK-NEXT:               Kind:            MD5
CHECK-NEXT:               Checksum:        DF91CB3A2B8D917486574BB50CAC4CC7
CHECK-NEXT:     - Module:          '* Linker *'
CHECK-NEXT:       ObjFile:         ''
