brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · 416cab0 Raw
126 lines · plain
1Test the linker line tables on roughly the following example:2 3==> foo.h <==4void bar(void);5inline void foo(void) {6  bar();7}8==> pdb_lines_1.c <==9#include "foo.h"10int main(void) {11  foo();12  return 42;13}14==> pdb_lines_2.c <==15void bar(void) {16}17 18$ cl -c -Z7 pdb_lines*.c19 20RUN: yaml2obj %S/Inputs/pdb_lines_1.yaml -o %t.pdb_lines_1.obj21RUN: yaml2obj %S/Inputs/pdb_lines_2.yaml -o %t.pdb_lines_2.obj22RUN: rm -f %t.exe %t.pdb23RUN: lld-link -debug -entry:main -nodefaultlib -out:%t.exe -pdb:%t.pdb %t.pdb_lines_1.obj %t.pdb_lines_2.obj24RUN: llvm-pdbutil pdb2yaml -modules -module-files -subsections=lines,fc %t.pdb | FileCheck %s25 26CHECK-LABEL: DbiStream:27CHECK-NEXT:   VerHeader:       V7028CHECK-NEXT:   Age:             129CHECK-NEXT:   BuildNumber:     3636330CHECK-NEXT:   PdbDllVersion:   031CHECK-NEXT:   PdbDllRbld:      032CHECK-NEXT:   Flags:           033CHECK-NEXT:   MachineType:     Amd6434CHECK-NEXT:   Modules:35 36CHECK-LABEL:    - Module:          {{.*}}pdb_lines_1.obj37CHECK-NEXT:       ObjFile:         {{.*}}pdb_lines_1.obj38CHECK-NEXT:       SourceFiles:39CHECK-NEXT:         - '{{.*}}pdb_lines_1.c'40CHECK-NEXT:         - '{{.*}}foo.h'41CHECK-NEXT:       Subsections:42CHECK-NEXT:         - !Lines43CHECK-NEXT:           CodeSize:        1944CHECK-NEXT:           Flags:           [  ]45CHECK-NEXT:           RelocOffset:     046CHECK-NEXT:           RelocSegment:    147CHECK-NEXT:           Blocks:48CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_1.c'49CHECK-NEXT:               Lines:50CHECK-NEXT:                 - Offset:          051CHECK-NEXT:                   LineStart:       252CHECK-NEXT:                   IsStatement:     true53CHECK-NEXT:                   EndDelta:        054CHECK-NEXT:                 - Offset:          455CHECK-NEXT:                   LineStart:       356CHECK-NEXT:                   IsStatement:     true57CHECK-NEXT:                   EndDelta:        058CHECK-NEXT:                 - Offset:          959CHECK-NEXT:                   LineStart:       460CHECK-NEXT:                   IsStatement:     true61CHECK-NEXT:                   EndDelta:        062CHECK-NEXT:                 - Offset:          1463CHECK-NEXT:                   LineStart:       564CHECK-NEXT:                   IsStatement:     true65CHECK-NEXT:                   EndDelta:        066CHECK-NEXT:               Columns:67CHECK-NEXT:         - !Lines68CHECK-NEXT:           CodeSize:        1469CHECK-NEXT:           Flags:           [  ]70CHECK-NEXT:           RelocOffset:     3271CHECK-NEXT:           RelocSegment:    172CHECK-NEXT:           Blocks:73CHECK-NEXT:             - FileName:        '{{.*}}foo.h'74CHECK-NEXT:               Lines:75CHECK-NEXT:                 - Offset:          076CHECK-NEXT:                   LineStart:       277CHECK-NEXT:                   IsStatement:     true78CHECK-NEXT:                   EndDelta:        079CHECK-NEXT:                 - Offset:          480CHECK-NEXT:                   LineStart:       381CHECK-NEXT:                   IsStatement:     true82CHECK-NEXT:                   EndDelta:        083CHECK-NEXT:                 - Offset:          984CHECK-NEXT:                   LineStart:       485CHECK-NEXT:                   IsStatement:     true86CHECK-NEXT:                   EndDelta:        087CHECK-NEXT:               Columns:88CHECK-NEXT:         - !FileChecksums89CHECK-NEXT:           Checksums:90CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_1.c'91CHECK-NEXT:               Kind:            MD592CHECK-NEXT:               Checksum:        4EB19DCD86C3BA2238A255C718572E7B93CHECK-NEXT:             - FileName:        '{{.*}}foo.h'94CHECK-NEXT:               Kind:            MD595CHECK-NEXT:               Checksum:        061EB73ABB642532857A4F1D9CBAC32396 97CHECK-LABEL:    - Module:          {{.*}}pdb_lines_2.obj98CHECK-NEXT:       ObjFile:         {{.*}}pdb_lines_2.obj99CHECK-NEXT:       SourceFiles:100CHECK-NEXT:         - '{{.*}}pdb_lines_2.c'101CHECK-NEXT:       Subsections:102CHECK-NEXT:         - !Lines103CHECK-NEXT:           CodeSize:        1104CHECK-NEXT:           Flags:           [  ]105CHECK-NEXT:           RelocOffset:     48106CHECK-NEXT:           RelocSegment:    1107CHECK-NEXT:           Blocks:108CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_2.c'109CHECK-NEXT:               Lines:110CHECK-NEXT:                 - Offset:          0111CHECK-NEXT:                   LineStart:       1112CHECK-NEXT:                   IsStatement:     true113CHECK-NEXT:                   EndDelta:        0114CHECK-NEXT:                 - Offset:          0115CHECK-NEXT:                   LineStart:       2116CHECK-NEXT:                   IsStatement:     true117CHECK-NEXT:                   EndDelta:        0118CHECK-NEXT:               Columns:119CHECK-NEXT:         - !FileChecksums120CHECK-NEXT:           Checksums:121CHECK-NEXT:             - FileName:        '{{.*}}pdb_lines_2.c'122CHECK-NEXT:               Kind:            MD5123CHECK-NEXT:               Checksum:        DF91CB3A2B8D917486574BB50CAC4CC7124CHECK-NEXT:     - Module:          '* Linker *'125CHECK-NEXT:       ObjFile:         ''126