RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ RUN: | FileCheck %s -check-prefix MFUN32 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ RUN: | FileCheck %s -check-prefix MFUN64 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ RUN: | FileCheck %s -check-prefix MFILE32 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ RUN: | FileCheck %s -check-prefix MFILE64 MFUN32: CodeViewLineTables [ MFUN32-NEXT: Magic: 0x4 MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x52 MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF5 MFUN32-NEXT: PayloadSize: 0x24 MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x4B MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF2 MFUN32-NEXT: PayloadSize: 0x30 MFUN32: FunctionName: _x MFUN32-NEXT: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF5 MFUN32-NEXT: PayloadSize: 0x24 MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x4B MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF2 MFUN32-NEXT: PayloadSize: 0x30 MFUN32: FunctionName: _y MFUN32-NEXT: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF5 MFUN32-NEXT: PayloadSize: 0x24 MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x4B MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF2 MFUN32-NEXT: PayloadSize: 0x40 MFUN32: FunctionName: _f MFUN32-NEXT: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF4 MFUN32-NEXT: PayloadSize: 0x18 MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF3 MFUN32-NEXT: PayloadSize: 0x46 MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x8 MFUN32: ] MFUN32-NEXT: FunctionLineTable [ MFUN32-NEXT: FunctionName: _x MFUN32-NEXT: CodeSize: 0xA MFUN32-NEXT: FilenameSegment [ MFUN32-NEXT: Filename: d:\source.c MFUN32-NEXT: +0x0: 3 MFUN32-NEXT: +0x3: 4 MFUN32-NEXT: +0x8: 5 MFUN32-NEXT: ] MFUN32-NEXT: ] MFUN32-NEXT: FunctionLineTable [ MFUN32-NEXT: FunctionName: _y MFUN32-NEXT: CodeSize: 0xA MFUN32-NEXT: FilenameSegment [ MFUN32-NEXT: Filename: d:\source.c MFUN32-NEXT: +0x0: 7 MFUN32-NEXT: +0x3: 8 MFUN32-NEXT: +0x8: 9 MFUN32-NEXT: ] MFUN32-NEXT: ] MFUN32-NEXT: FunctionLineTable [ MFUN32-NEXT: FunctionName: _f MFUN32-NEXT: CodeSize: 0x14 MFUN32-NEXT: FilenameSegment [ MFUN32-NEXT: Filename: d:\source.c MFUN32-NEXT: +0x0: 11 MFUN32-NEXT: +0x3: 12 MFUN32-NEXT: +0x8: 13 MFUN32-NEXT: +0xD: 14 MFUN32-NEXT: +0x12: 15 MFUN32-NEXT: ] MFUN32-NEXT: ] MFUN32-NEXT: ] MFUN64: CodeViewLineTables [ MFUN64-NEXT: Magic: 0x4 MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x52 MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x4B MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF2 MFUN64-NEXT: PayloadSize: 0x30 MFUN64: FunctionName: x MFUN64-NEXT: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x4B MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF2 MFUN64-NEXT: PayloadSize: 0x30 MFUN64: FunctionName: y MFUN64-NEXT: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x4B MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF2 MFUN64-NEXT: PayloadSize: 0x40 MFUN64: FunctionName: f MFUN64-NEXT: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF4 MFUN64-NEXT: PayloadSize: 0x18 MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF3 MFUN64-NEXT: PayloadSize: 0xD MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x8 MFUN64: ] MFUN64-NEXT: FunctionLineTable [ MFUN64-NEXT: FunctionName: x MFUN64-NEXT: CodeSize: 0xE MFUN64-NEXT: FilenameSegment [ MFUN64-NEXT: Filename: d:\source.c MFUN64-NEXT: +0x0: 3 MFUN64-NEXT: +0x4: 4 MFUN64-NEXT: +0x9: 5 MFUN64-NEXT: ] MFUN64-NEXT: ] MFUN64-NEXT: FunctionLineTable [ MFUN64-NEXT: FunctionName: y MFUN64-NEXT: CodeSize: 0xE MFUN64-NEXT: FilenameSegment [ MFUN64-NEXT: Filename: d:\source.c MFUN64-NEXT: +0x0: 7 MFUN64-NEXT: +0x4: 8 MFUN64-NEXT: +0x9: 9 MFUN64-NEXT: ] MFUN64-NEXT: ] MFUN64-NEXT: FunctionLineTable [ MFUN64-NEXT: FunctionName: f MFUN64-NEXT: CodeSize: 0x18 MFUN64-NEXT: FilenameSegment [ MFUN64-NEXT: Filename: d:\source.c MFUN64-NEXT: +0x0: 11 MFUN64-NEXT: +0x4: 12 MFUN64-NEXT: +0x9: 13 MFUN64-NEXT: +0xE: 14 MFUN64-NEXT: +0x13: 15 MFUN64-NEXT: ] MFUN64-NEXT: ] MFUN64-NEXT: ] MFILE32: CodeViewLineTables [ MFILE32-NEXT: Magic: 0x4 MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF1 MFILE32-NEXT: PayloadSize: 0x51 MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF5 MFILE32-NEXT: PayloadSize: 0x24 MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF1 MFILE32-NEXT: PayloadSize: 0x4B MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF2 MFILE32-NEXT: PayloadSize: 0x64 MFILE32: FunctionName: _f MFILE32-NEXT: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF4 MFILE32-NEXT: PayloadSize: 0x28 MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF3 MFILE32-NEXT: PayloadSize: 0x57 MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF1 MFILE32-NEXT: PayloadSize: 0x8 MFILE32: ] MFILE32-NEXT: FunctionLineTable [ MFILE32-NEXT: FunctionName: _f MFILE32-NEXT: CodeSize: 0x14 MFILE32-NEXT: FilenameSegment [ MFILE32-NEXT: Filename: d:\input.c MFILE32-NEXT: +0x0: 3 MFILE32-NEXT: ] MFILE32-NEXT: FilenameSegment [ MFILE32-NEXT: Filename: d:\one.c MFILE32-NEXT: +0x3: 1 MFILE32-NEXT: ] MFILE32-NEXT: FilenameSegment [ MFILE32-NEXT: Filename: d:\two.c MFILE32-NEXT: +0x8: 2 MFILE32-NEXT: ] MFILE32-NEXT: FilenameSegment [ MFILE32-NEXT: Filename: d:\one.c MFILE32-NEXT: +0xD: 7 MFILE32-NEXT: +0x12: 8 MFILE32-NEXT: ] MFILE32-NEXT: ] MFILE32-NEXT: ] MFILE64: CodeViewLineTables [ MFILE64-NEXT: Magic: 0x4 MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF1 MFILE64-NEXT: PayloadSize: 0x51 MFILE64: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF1 MFILE64-NEXT: PayloadSize: 0x4B MFILE64: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF2 MFILE64-NEXT: PayloadSize: 0x64 MFILE64: FunctionName: f MFILE64-NEXT: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF4 MFILE64-NEXT: PayloadSize: 0x28 MFILE64: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF3 MFILE64-NEXT: PayloadSize: 0x1E MFILE64: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF1 MFILE64-NEXT: PayloadSize: 0x8 MFILE64: ] MFILE64-NEXT: FunctionLineTable [ MFILE64-NEXT: FunctionName: f MFILE64-NEXT: CodeSize: 0x18 MFILE64-NEXT: FilenameSegment [ MFILE64-NEXT: Filename: d:\input.c MFILE64-NEXT: +0x0: 3 MFILE64-NEXT: ] MFILE64-NEXT: FilenameSegment [ MFILE64-NEXT: Filename: d:\one.c MFILE64-NEXT: +0x4: 1 MFILE64-NEXT: ] MFILE64-NEXT: FilenameSegment [ MFILE64-NEXT: Filename: d:\two.c MFILE64-NEXT: +0x9: 2 MFILE64-NEXT: ] MFILE64-NEXT: FilenameSegment [ MFILE64-NEXT: Filename: d:\one.c MFILE64-NEXT: +0xE: 7 MFILE64-NEXT: +0x13: 8 MFILE64-NEXT: ] MFILE64-NEXT: ] MFILE64-NEXT: ]