1RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ 2RUN: | FileCheck %s -check-prefix MFUN32 3RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ 4RUN: | FileCheck %s -check-prefix MFUN64 5RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ 6RUN: | FileCheck %s -check-prefix MFILE32 7RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ 8RUN: | FileCheck %s -check-prefix MFILE64 9 10MFUN32: CodeViewLineTables [ 11MFUN32-NEXT: Magic: 0x4 12MFUN32-NEXT: Subsection [ 13MFUN32-NEXT: Type: 0xF1 14MFUN32-NEXT: PayloadSize: 0x52 15MFUN32: ] 16MFUN32-NEXT: Subsection [ 17MFUN32-NEXT: Type: 0xF5 18MFUN32-NEXT: PayloadSize: 0x24 19MFUN32: ] 20MFUN32-NEXT: Subsection [ 21MFUN32-NEXT: Type: 0xF1 22MFUN32-NEXT: PayloadSize: 0x4B 23MFUN32: ] 24MFUN32-NEXT: Subsection [ 25MFUN32-NEXT: Type: 0xF2 26MFUN32-NEXT: PayloadSize: 0x30 27MFUN32: FunctionName: _x 28MFUN32-NEXT: ] 29MFUN32-NEXT: Subsection [ 30MFUN32-NEXT: Type: 0xF5 31MFUN32-NEXT: PayloadSize: 0x24 32MFUN32: ] 33MFUN32-NEXT: Subsection [ 34MFUN32-NEXT: Type: 0xF1 35MFUN32-NEXT: PayloadSize: 0x4B 36MFUN32: ] 37MFUN32-NEXT: Subsection [ 38MFUN32-NEXT: Type: 0xF2 39MFUN32-NEXT: PayloadSize: 0x30 40MFUN32: FunctionName: _y 41MFUN32-NEXT: ] 42MFUN32-NEXT: Subsection [ 43MFUN32-NEXT: Type: 0xF5 44MFUN32-NEXT: PayloadSize: 0x24 45MFUN32: ] 46MFUN32-NEXT: Subsection [ 47MFUN32-NEXT: Type: 0xF1 48MFUN32-NEXT: PayloadSize: 0x4B 49MFUN32: ] 50MFUN32-NEXT: Subsection [ 51MFUN32-NEXT: Type: 0xF2 52MFUN32-NEXT: PayloadSize: 0x40 53MFUN32: FunctionName: _f 54MFUN32-NEXT: ] 55MFUN32-NEXT: Subsection [ 56MFUN32-NEXT: Type: 0xF4 57MFUN32-NEXT: PayloadSize: 0x18 58MFUN32: ] 59MFUN32-NEXT: Subsection [ 60MFUN32-NEXT: Type: 0xF3 61MFUN32-NEXT: PayloadSize: 0x46 62MFUN32: ] 63MFUN32-NEXT: Subsection [ 64MFUN32-NEXT: Type: 0xF1 65MFUN32-NEXT: PayloadSize: 0x8 66MFUN32: ] 67MFUN32-NEXT: FunctionLineTable [ 68MFUN32-NEXT: FunctionName: _x 69MFUN32-NEXT: CodeSize: 0xA 70MFUN32-NEXT: FilenameSegment [ 71MFUN32-NEXT: Filename: d:\source.c 72MFUN32-NEXT: +0x0: 3 73MFUN32-NEXT: +0x3: 4 74MFUN32-NEXT: +0x8: 5 75MFUN32-NEXT: ] 76MFUN32-NEXT: ] 77MFUN32-NEXT: FunctionLineTable [ 78MFUN32-NEXT: FunctionName: _y 79MFUN32-NEXT: CodeSize: 0xA 80MFUN32-NEXT: FilenameSegment [ 81MFUN32-NEXT: Filename: d:\source.c 82MFUN32-NEXT: +0x0: 7 83MFUN32-NEXT: +0x3: 8 84MFUN32-NEXT: +0x8: 9 85MFUN32-NEXT: ] 86MFUN32-NEXT: ] 87MFUN32-NEXT: FunctionLineTable [ 88MFUN32-NEXT: FunctionName: _f 89MFUN32-NEXT: CodeSize: 0x14 90MFUN32-NEXT: FilenameSegment [ 91MFUN32-NEXT: Filename: d:\source.c 92MFUN32-NEXT: +0x0: 11 93MFUN32-NEXT: +0x3: 12 94MFUN32-NEXT: +0x8: 13 95MFUN32-NEXT: +0xD: 14 96MFUN32-NEXT: +0x12: 15 97MFUN32-NEXT: ] 98MFUN32-NEXT: ] 99MFUN32-NEXT: ] 100 101MFUN64: CodeViewLineTables [ 102MFUN64-NEXT: Magic: 0x4 103MFUN64-NEXT: Subsection [ 104MFUN64-NEXT: Type: 0xF1 105MFUN64-NEXT: PayloadSize: 0x52 106MFUN64: ] 107MFUN64-NEXT: Subsection [ 108MFUN64-NEXT: Type: 0xF1 109MFUN64-NEXT: PayloadSize: 0x4B 110MFUN64: ] 111MFUN64-NEXT: Subsection [ 112MFUN64-NEXT: Type: 0xF2 113MFUN64-NEXT: PayloadSize: 0x30 114MFUN64: FunctionName: x 115MFUN64-NEXT: ] 116MFUN64-NEXT: Subsection [ 117MFUN64-NEXT: Type: 0xF1 118MFUN64-NEXT: PayloadSize: 0x4B 119MFUN64: ] 120MFUN64-NEXT: Subsection [ 121MFUN64-NEXT: Type: 0xF2 122MFUN64-NEXT: PayloadSize: 0x30 123MFUN64: FunctionName: y 124MFUN64-NEXT: ] 125MFUN64-NEXT: Subsection [ 126MFUN64-NEXT: Type: 0xF1 127MFUN64-NEXT: PayloadSize: 0x4B 128MFUN64: ] 129MFUN64-NEXT: Subsection [ 130MFUN64-NEXT: Type: 0xF2 131MFUN64-NEXT: PayloadSize: 0x40 132MFUN64: FunctionName: f 133MFUN64-NEXT: ] 134MFUN64-NEXT: Subsection [ 135MFUN64-NEXT: Type: 0xF4 136MFUN64-NEXT: PayloadSize: 0x18 137MFUN64: ] 138MFUN64-NEXT: Subsection [ 139MFUN64-NEXT: Type: 0xF3 140MFUN64-NEXT: PayloadSize: 0xD 141MFUN64: ] 142MFUN64-NEXT: Subsection [ 143MFUN64-NEXT: Type: 0xF1 144MFUN64-NEXT: PayloadSize: 0x8 145MFUN64: ] 146MFUN64-NEXT: FunctionLineTable [ 147MFUN64-NEXT: FunctionName: x 148MFUN64-NEXT: CodeSize: 0xE 149MFUN64-NEXT: FilenameSegment [ 150MFUN64-NEXT: Filename: d:\source.c 151MFUN64-NEXT: +0x0: 3 152MFUN64-NEXT: +0x4: 4 153MFUN64-NEXT: +0x9: 5 154MFUN64-NEXT: ] 155MFUN64-NEXT: ] 156MFUN64-NEXT: FunctionLineTable [ 157MFUN64-NEXT: FunctionName: y 158MFUN64-NEXT: CodeSize: 0xE 159MFUN64-NEXT: FilenameSegment [ 160MFUN64-NEXT: Filename: d:\source.c 161MFUN64-NEXT: +0x0: 7 162MFUN64-NEXT: +0x4: 8 163MFUN64-NEXT: +0x9: 9 164MFUN64-NEXT: ] 165MFUN64-NEXT: ] 166MFUN64-NEXT: FunctionLineTable [ 167MFUN64-NEXT: FunctionName: f 168MFUN64-NEXT: CodeSize: 0x18 169MFUN64-NEXT: FilenameSegment [ 170MFUN64-NEXT: Filename: d:\source.c 171MFUN64-NEXT: +0x0: 11 172MFUN64-NEXT: +0x4: 12 173MFUN64-NEXT: +0x9: 13 174MFUN64-NEXT: +0xE: 14 175MFUN64-NEXT: +0x13: 15 176MFUN64-NEXT: ] 177MFUN64-NEXT: ] 178MFUN64-NEXT: ] 179 180MFILE32: CodeViewLineTables [ 181MFILE32-NEXT: Magic: 0x4 182MFILE32-NEXT: Subsection [ 183MFILE32-NEXT: Type: 0xF1 184MFILE32-NEXT: PayloadSize: 0x51 185MFILE32: ] 186MFILE32-NEXT: Subsection [ 187MFILE32-NEXT: Type: 0xF5 188MFILE32-NEXT: PayloadSize: 0x24 189MFILE32: ] 190MFILE32-NEXT: Subsection [ 191MFILE32-NEXT: Type: 0xF1 192MFILE32-NEXT: PayloadSize: 0x4B 193MFILE32: ] 194MFILE32-NEXT: Subsection [ 195MFILE32-NEXT: Type: 0xF2 196MFILE32-NEXT: PayloadSize: 0x64 197MFILE32: FunctionName: _f 198MFILE32-NEXT: ] 199MFILE32-NEXT: Subsection [ 200MFILE32-NEXT: Type: 0xF4 201MFILE32-NEXT: PayloadSize: 0x28 202MFILE32: ] 203MFILE32-NEXT: Subsection [ 204MFILE32-NEXT: Type: 0xF3 205MFILE32-NEXT: PayloadSize: 0x57 206MFILE32: ] 207MFILE32-NEXT: Subsection [ 208MFILE32-NEXT: Type: 0xF1 209MFILE32-NEXT: PayloadSize: 0x8 210MFILE32: ] 211MFILE32-NEXT: FunctionLineTable [ 212MFILE32-NEXT: FunctionName: _f 213MFILE32-NEXT: CodeSize: 0x14 214MFILE32-NEXT: FilenameSegment [ 215MFILE32-NEXT: Filename: d:\input.c 216MFILE32-NEXT: +0x0: 3 217MFILE32-NEXT: ] 218MFILE32-NEXT: FilenameSegment [ 219MFILE32-NEXT: Filename: d:\one.c 220MFILE32-NEXT: +0x3: 1 221MFILE32-NEXT: ] 222MFILE32-NEXT: FilenameSegment [ 223MFILE32-NEXT: Filename: d:\two.c 224MFILE32-NEXT: +0x8: 2 225MFILE32-NEXT: ] 226MFILE32-NEXT: FilenameSegment [ 227MFILE32-NEXT: Filename: d:\one.c 228MFILE32-NEXT: +0xD: 7 229MFILE32-NEXT: +0x12: 8 230MFILE32-NEXT: ] 231MFILE32-NEXT: ] 232MFILE32-NEXT: ] 233 234MFILE64: CodeViewLineTables [ 235MFILE64-NEXT: Magic: 0x4 236MFILE64-NEXT: Subsection [ 237MFILE64-NEXT: Type: 0xF1 238MFILE64-NEXT: PayloadSize: 0x51 239MFILE64: ] 240MFILE64-NEXT: Subsection [ 241MFILE64-NEXT: Type: 0xF1 242MFILE64-NEXT: PayloadSize: 0x4B 243MFILE64: ] 244MFILE64-NEXT: Subsection [ 245MFILE64-NEXT: Type: 0xF2 246MFILE64-NEXT: PayloadSize: 0x64 247MFILE64: FunctionName: f 248MFILE64-NEXT: ] 249MFILE64-NEXT: Subsection [ 250MFILE64-NEXT: Type: 0xF4 251MFILE64-NEXT: PayloadSize: 0x28 252MFILE64: ] 253MFILE64-NEXT: Subsection [ 254MFILE64-NEXT: Type: 0xF3 255MFILE64-NEXT: PayloadSize: 0x1E 256MFILE64: ] 257MFILE64-NEXT: Subsection [ 258MFILE64-NEXT: Type: 0xF1 259MFILE64-NEXT: PayloadSize: 0x8 260MFILE64: ] 261MFILE64-NEXT: FunctionLineTable [ 262MFILE64-NEXT: FunctionName: f 263MFILE64-NEXT: CodeSize: 0x18 264MFILE64-NEXT: FilenameSegment [ 265MFILE64-NEXT: Filename: d:\input.c 266MFILE64-NEXT: +0x0: 3 267MFILE64-NEXT: ] 268MFILE64-NEXT: FilenameSegment [ 269MFILE64-NEXT: Filename: d:\one.c 270MFILE64-NEXT: +0x4: 1 271MFILE64-NEXT: ] 272MFILE64-NEXT: FilenameSegment [ 273MFILE64-NEXT: Filename: d:\two.c 274MFILE64-NEXT: +0x9: 2 275MFILE64-NEXT: ] 276MFILE64-NEXT: FilenameSegment [ 277MFILE64-NEXT: Filename: d:\one.c 278MFILE64-NEXT: +0xE: 7 279MFILE64-NEXT: +0x13: 8 280MFILE64-NEXT: ] 281MFILE64-NEXT: ] 282MFILE64-NEXT: ] 283