1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 ; The following two object files were generated using the following command: 3 ; D:\> cl /Z7 /c source.c 4 ; with the following contents of D:\source.c: 5 ; void z(void); 6 ; 7 ; void x(void) { 8 ; z(); 9 ; } 10 ; 11 ; void y(void) { 12 ; z(); 13 ; } 14 ; 15 ; void f(void) { 16 ; x(); 17 ; y(); 18 ; z(); 19 ; } 20 ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. 21 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ 22 RUN: | FileCheck %s -check-prefix MFUN32 23 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \ 24 RUN: | FileCheck %s -check-prefix MFUN32 25 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ 26 RUN: | FileCheck %s -check-prefix MFUN64 27 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \ 28 RUN: | FileCheck %s -check-prefix MFUN64 29 30 MFUN32: CodeViewDebugInfo [ 31 MFUN32-NEXT: Section: .debug$S (2) 32 MFUN32-NEXT: Magic: 0x4 33 MFUN32-NEXT: Subsection [ 34 MFUN32-NEXT: SubSectionType: Symbols (0xF1) 35 MFUN32-NEXT: SubSectionSize: 0x52 36 MFUN32: ] 37 MFUN32: Subsection [ 38 MFUN32-NEXT: SubSectionType: FrameData (0xF5) 39 MFUN32-NEXT: SubSectionSize: 0x24 40 MFUN32: ] 41 MFUN32: Subsection [ 42 MFUN32-NEXT: SubSectionType: Symbols (0xF1) 43 MFUN32-NEXT: SubSectionSize: 0x4B 44 MFUN32: ProcStart { 45 MFUN32: CodeSize: 0xA 46 MFUN32: DisplayName: x 47 MFUN32: LinkageName: _x 48 MFUN32: } 49 MFUN32: ProcEnd 50 MFUN32: ] 51 MFUN32: Subsection [ 52 MFUN32-NEXT: SubSectionType: Lines (0xF2) 53 MFUN32-NEXT: SubSectionSize: 0x30 54 MFUN32: LinkageName: _x 55 MFUN32-NEXT: ] 56 MFUN32-NEXT: Subsection [ 57 MFUN32-NEXT: SubSectionType: FrameData (0xF5) 58 MFUN32-NEXT: SubSectionSize: 0x24 59 MFUN32: ] 60 MFUN32: Subsection [ 61 MFUN32-NEXT: SubSectionType: Symbols (0xF1) 62 MFUN32-NEXT: SubSectionSize: 0x4B 63 MFUN32: ProcStart { 64 MFUN32: CodeSize: 0xA 65 MFUN32: DisplayName: y 66 MFUN32: LinkageName: _y 67 MFUN32: } 68 MFUN32: ProcEnd 69 MFUN32: ] 70 MFUN32-NEXT: Subsection [ 71 MFUN32-NEXT: SubSectionType: Lines (0xF2) 72 MFUN32-NEXT: SubSectionSize: 0x30 73 MFUN32: LinkageName: _y 74 MFUN32-NEXT: ] 75 MFUN32-NEXT: Subsection [ 76 MFUN32-NEXT: SubSectionType: FrameData (0xF5) 77 MFUN32-NEXT: SubSectionSize: 0x24 78 MFUN32: ] 79 MFUN32: Subsection [ 80 MFUN32-NEXT: SubSectionType: Symbols (0xF1) 81 MFUN32-NEXT: SubSectionSize: 0x4B 82 MFUN32: ProcStart { 83 MFUN32: CodeSize: 0x14 84 MFUN32: DisplayName: f 85 MFUN32: LinkageName: _f 86 MFUN32: } 87 MFUN32: ProcEnd 88 MFUN32: ] 89 MFUN32: Subsection [ 90 MFUN32-NEXT: SubSectionType: Lines (0xF2) 91 MFUN32-NEXT: SubSectionSize: 0x40 92 MFUN32: LinkageName: _f 93 MFUN32-NEXT: ] 94 MFUN32-NEXT: Subsection [ 95 MFUN32-NEXT: SubSectionType: FileChecksums (0xF4) 96 MFUN32-NEXT: SubSectionSize: 0x18 97 MFUN32: ] 98 MFUN32-NEXT: Subsection [ 99 MFUN32-NEXT: SubSectionType: StringTable (0xF3) 100 MFUN32-NEXT: SubSectionSize: 0x46 101 MFUN32: ] 102 MFUN32-NEXT: Subsection [ 103 MFUN32-NEXT: SubSectionType: Symbols (0xF1) 104 MFUN32-NEXT: SubSectionSize: 0x8 105 MFUN32: ] 106 MFUN32-NEXT: FunctionLineTable [ 107 MFUN32-NEXT LinkageName: _x 108 MFUN32-NEXT Flags: 0x0 109 MFUN32-NEXT CodeSize: 0xA 110 MFUN32-NEXT FilenameSegment [ 111 MFUN32-NEXT Filename: d:\source.c 112 MFUN32-NEXT +0x0 [ 113 MFUN32-NEXT LineNumberStart: 3 114 MFUN32-NEXT LineNumberEndDelta: 0 115 MFUN32-NEXT IsStatement: Yes 116 MFUN32-NEXT ] 117 MFUN32-NEXT +0x3 [ 118 MFUN32-NEXT LineNumberStart: 4 119 MFUN32-NEXT LineNumberEndDelta: 0 120 MFUN32-NEXT IsStatement: Yes 121 MFUN32-NEXT ] 122 MFUN32-NEXT +0x8 [ 123 MFUN32-NEXT LineNumberStart: 5 124 MFUN32-NEXT LineNumberEndDelta: 0 125 MFUN32-NEXT IsStatement: Yes 126 MFUN32-NEXT ] 127 MFUN32-NEXT ] 128 MFUN32-NEXT ] 129 MFUN32-NEXT FunctionLineTable [ 130 MFUN32-NEXT LinkageName: _y 131 MFUN32-NEXT Flags: 0x0 132 MFUN32-NEXT CodeSize: 0xA 133 MFUN32-NEXT FilenameSegment [ 134 MFUN32-NEXT Filename: d:\source.c 135 MFUN32-NEXT +0x0 [ 136 MFUN32-NEXT LineNumberStart: 7 137 MFUN32-NEXT LineNumberEndDelta: 0 138 MFUN32-NEXT IsStatement: Yes 139 MFUN32-NEXT ] 140 MFUN32-NEXT +0x3 [ 141 MFUN32-NEXT LineNumberStart: 8 142 MFUN32-NEXT LineNumberEndDelta: 0 143 MFUN32-NEXT IsStatement: Yes 144 MFUN32-NEXT ] 145 MFUN32-NEXT +0x8 [ 146 MFUN32-NEXT LineNumberStart: 9 147 MFUN32-NEXT LineNumberEndDelta: 0 148 MFUN32-NEXT IsStatement: Yes 149 MFUN32-NEXT ] 150 MFUN32-NEXT ] 151 MFUN32-NEXT ] 152 MFUN32-NEXT FunctionLineTable [ 153 MFUN32-NEXT LinkageName: _f 154 MFUN32-NEXT Flags: 0x0 155 MFUN32-NEXT CodeSize: 0x14 156 MFUN32-NEXT FilenameSegment [ 157 MFUN32-NEXT Filename: d:\source.c 158 MFUN32-NEXT +0x0 [ 159 MFUN32-NEXT LineNumberStart: 11 160 MFUN32-NEXT LineNumberEndDelta: 0 161 MFUN32-NEXT IsStatement: Yes 162 MFUN32-NEXT ] 163 MFUN32-NEXT +0x3 [ 164 MFUN32-NEXT LineNumberStart: 12 165 MFUN32-NEXT LineNumberEndDelta: 0 166 MFUN32-NEXT IsStatement: Yes 167 MFUN32-NEXT ] 168 MFUN32-NEXT +0x8 [ 169 MFUN32-NEXT LineNumberStart: 13 170 MFUN32-NEXT LineNumberEndDelta: 0 171 MFUN32-NEXT IsStatement: Yes 172 MFUN32-NEXT ] 173 MFUN32-NEXT +0xD [ 174 MFUN32-NEXT LineNumberStart: 14 175 MFUN32-NEXT LineNumberEndDelta: 0 176 MFUN32-NEXT IsStatement: Yes 177 MFUN32-NEXT ] 178 MFUN32-NEXT +0x12 [ 179 MFUN32-NEXT LineNumberStart: 15 180 MFUN32-NEXT LineNumberEndDelta: 0 181 MFUN32-NEXT IsStatement: Yes 182 MFUN32-NEXT ] 183 MFUN32-NEXT ] 184 MFUN32-NEXT ] 185 MFUN32: ] 186 187 MFUN64: CodeViewDebugInfo [ 188 MFUN64: Magic: 0x4 189 MFUN64-NEXT: Subsection [ 190 MFUN64-NEXT: SubSectionType: Symbols (0xF1) 191 MFUN64-NEXT: SubSectionSize: 0x52 192 MFUN64: ] 193 MFUN64: Subsection [ 194 MFUN64-NEXT: SubSectionType: Symbols (0xF1) 195 MFUN64-NEXT: SubSectionSize: 0x4B 196 MFUN64: ProcStart { 197 MFUN64: CodeSize: 0xE 198 MFUN64: DisplayName: x 199 MFUN64: LinkageName: x 200 MFUN64: } 201 MFUN64: ProcEnd 202 MFUN64: ] 203 MFUN64-NEXT: Subsection [ 204 MFUN64-NEXT: SubSectionType: Lines (0xF2) 205 MFUN64-NEXT: SubSectionSize: 0x30 206 MFUN64: LinkageName: x 207 MFUN64-NEXT: ] 208 MFUN64-NEXT: Subsection [ 209 MFUN64-NEXT: SubSectionType: Symbols (0xF1) 210 MFUN64-NEXT: SubSectionSize: 0x4B 211 MFUN64: ProcStart { 212 MFUN64: CodeSize: 0xE 213 MFUN64: DisplayName: y 214 MFUN64: LinkageName: y 215 MFUN64: } 216 MFUN64: ProcEnd 217 MFUN64: ] 218 MFUN64-NEXT: Subsection [ 219 MFUN64-NEXT: SubSectionType: Lines (0xF2) 220 MFUN64-NEXT: SubSectionSize: 0x30 221 MFUN64: LinkageName: y 222 MFUN64-NEXT: ] 223 MFUN64-NEXT: Subsection [ 224 MFUN64-NEXT: SubSectionType: Symbols (0xF1) 225 MFUN64-NEXT: SubSectionSize: 0x4B 226 MFUN64: ProcStart { 227 MFUN64: CodeSize: 0x18 228 MFUN64: DisplayName: f 229 MFUN64: LinkageName: f 230 MFUN64: } 231 MFUN64: ProcEnd 232 MFUN64: ] 233 MFUN64-NEXT: Subsection [ 234 MFUN64-NEXT: SubSectionType: Lines (0xF2) 235 MFUN64-NEXT: SubSectionSize: 0x40 236 MFUN64: LinkageName: f 237 MFUN64-NEXT: ] 238 MFUN64-NEXT: Subsection [ 239 MFUN64-NEXT: SubSectionType: FileChecksums (0xF4) 240 MFUN64-NEXT: SubSectionSize: 0x18 241 MFUN64: ] 242 MFUN64-NEXT: Subsection [ 243 MFUN64-NEXT: SubSectionType: StringTable (0xF3) 244 MFUN64-NEXT: SubSectionSize: 0xD 245 MFUN64: ] 246 MFUN64-NEXT: Subsection [ 247 MFUN64-NEXT: SubSectionType: Symbols (0xF1) 248 MFUN64-NEXT: SubSectionSize: 0x8 249 MFUN64: ] 250 MFUN64-NEXT: FunctionLineTable [ 251 MFUN64-NEXT: LinkageName: x 252 MFUN64-NEXT: Flags: 0x0 253 MFUN64-NEXT: CodeSize: 0xE 254 MFUN64-NEXT: FilenameSegment [ 255 MFUN64-NEXT: Filename: d:\source.c 256 MFUN64-NEXT: +0x0 [ 257 MFUN64-NEXT: LineNumberStart: 3 258 MFUN64-NEXT: LineNumberEndDelta: 0 259 MFUN64-NEXT: IsStatement: Yes 260 MFUN64-NEXT: ] 261 MFUN64-NEXT: +0x4 [ 262 MFUN64-NEXT: LineNumberStart: 4 263 MFUN64-NEXT: LineNumberEndDelta: 0 264 MFUN64-NEXT: IsStatement: Yes 265 MFUN64-NEXT: ] 266 MFUN64-NEXT: +0x9 [ 267 MFUN64-NEXT: LineNumberStart: 5 268 MFUN64-NEXT: LineNumberEndDelta: 0 269 MFUN64-NEXT: IsStatement: Yes 270 MFUN64-NEXT: ] 271 MFUN64-NEXT: ] 272 MFUN64-NEXT: ] 273 MFUN64-NEXT: FunctionLineTable [ 274 MFUN64-NEXT: LinkageName: y 275 MFUN64-NEXT: Flags: 0x0 276 MFUN64-NEXT: CodeSize: 0xE 277 MFUN64-NEXT: FilenameSegment [ 278 MFUN64-NEXT: Filename: d:\source.c 279 MFUN64-NEXT: +0x0 [ 280 MFUN64-NEXT: LineNumberStart: 7 281 MFUN64-NEXT: LineNumberEndDelta: 0 282 MFUN64-NEXT: IsStatement: Yes 283 MFUN64-NEXT: ] 284 MFUN64-NEXT: +0x4 [ 285 MFUN64-NEXT: LineNumberStart: 8 286 MFUN64-NEXT: LineNumberEndDelta: 0 287 MFUN64-NEXT: IsStatement: Yes 288 MFUN64-NEXT: ] 289 MFUN64-NEXT: +0x9 [ 290 MFUN64-NEXT: LineNumberStart: 9 291 MFUN64-NEXT: LineNumberEndDelta: 0 292 MFUN64-NEXT: IsStatement: Yes 293 MFUN64-NEXT: ] 294 MFUN64-NEXT: ] 295 MFUN64-NEXT: ] 296 MFUN64-NEXT: FunctionLineTable [ 297 MFUN64-NEXT: LinkageName: f 298 MFUN64-NEXT: Flags: 0x0 299 MFUN64-NEXT: CodeSize: 0x18 300 MFUN64-NEXT: FilenameSegment [ 301 MFUN64-NEXT: Filename: d:\source.c 302 MFUN64-NEXT: +0x0 [ 303 MFUN64-NEXT: LineNumberStart: 11 304 MFUN64-NEXT: LineNumberEndDelta: 0 305 MFUN64-NEXT: IsStatement: Yes 306 MFUN64-NEXT: ] 307 MFUN64-NEXT: +0x4 [ 308 MFUN64-NEXT: LineNumberStart: 12 309 MFUN64-NEXT: LineNumberEndDelta: 0 310 MFUN64-NEXT: IsStatement: Yes 311 MFUN64-NEXT: ] 312 MFUN64-NEXT: +0x9 [ 313 MFUN64-NEXT: LineNumberStart: 13 314 MFUN64-NEXT: LineNumberEndDelta: 0 315 MFUN64-NEXT: IsStatement: Yes 316 MFUN64-NEXT: ] 317 MFUN64-NEXT: +0xE [ 318 MFUN64-NEXT: LineNumberStart: 14 319 MFUN64-NEXT: LineNumberEndDelta: 0 320 MFUN64-NEXT: IsStatement: Yes 321 MFUN64-NEXT: ] 322 MFUN64-NEXT: +0x13 [ 323 MFUN64-NEXT: LineNumberStart: 15 324 MFUN64-NEXT: LineNumberEndDelta: 0 325 MFUN64-NEXT: IsStatement: Yes 326 MFUN64-NEXT: ] 327 MFUN64-NEXT: ] 328 MFUN64-NEXT: ] 329 MFUN64: ] 330 331 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 332 ; The following two object files were generated using the following command: 333 ; D:\> cl /Z7 /c input.c 334 ; with the following contents of D:\input.c: 335 ; void g(void); 336 ; 337 ; void f(void) { 338 ; #line 1 "one.c" 339 ; g(); 340 ; #line 2 "two.c" 341 ; g(); 342 ; #line 7 "one.c" 343 ; g(); 344 ; } 345 ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. 346 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ 347 RUN: | FileCheck %s -check-prefix MFILE32 348 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \ 349 RUN: | FileCheck %s -check-prefix MFILE32 350 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ 351 RUN: | FileCheck %s -check-prefix MFILE64 352 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \ 353 RUN: | FileCheck %s -check-prefix MFILE64 354 355 MFILE32: CodeViewDebugInfo [ 356 MFILE32: Magic: 0x4 357 MFILE32-NEXT: Subsection [ 358 MFILE32-NEXT: SubSectionType: Symbols (0xF1) 359 MFILE32-NEXT: SubSectionSize: 0x51 360 MFILE32: ] 361 MFILE32: Subsection [ 362 MFILE32-NEXT: SubSectionType: FrameData (0xF5) 363 MFILE32-NEXT: SubSectionSize: 0x24 364 MFILE32: ] 365 MFILE32: Subsection [ 366 MFILE32-NEXT: SubSectionType: Symbols (0xF1) 367 MFILE32-NEXT: SubSectionSize: 0x4B 368 MFILE32: ProcStart { 369 MFILE32: CodeSize: 0x14 370 MFILE32: DisplayName: f 371 MFILE32: LinkageName: _f 372 MFILE32: } 373 MFILE32: ProcEnd 374 MFILE32: ] 375 MFILE32-NEXT: Subsection [ 376 MFILE32-NEXT: SubSectionType: Lines (0xF2) 377 MFILE32-NEXT: SubSectionSize: 0x64 378 MFILE32: LinkageName: _f 379 MFILE32-NEXT: ] 380 MFILE32-NEXT: Subsection [ 381 MFILE32-NEXT: SubSectionType: FileChecksums (0xF4) 382 MFILE32-NEXT: SubSectionSize: 0x28 383 MFILE32: ] 384 MFILE32-NEXT: Subsection [ 385 MFILE32-NEXT: SubSectionType: StringTable (0xF3) 386 MFILE32-NEXT: SubSectionSize: 0x57 387 MFILE32: ] 388 MFILE32-NEXT: Subsection [ 389 MFILE32-NEXT: SubSectionType: Symbols (0xF1) 390 MFILE32-NEXT: SubSectionSize: 0x8 391 MFILE32: ] 392 MFILE32-NEXT: FunctionLineTable [ 393 MFILE32-NEXT: LinkageName: _f 394 MFILE32-NEXT: Flags: 0x0 395 MFILE32-NEXT: CodeSize: 0x14 396 MFILE32-NEXT: FilenameSegment [ 397 MFILE32-NEXT: Filename: d:\input.c 398 MFILE32-NEXT: +0x0 [ 399 MFILE32-NEXT: LineNumberStart: 3 400 MFILE32-NEXT: LineNumberEndDelta: 0 401 MFILE32-NEXT: IsStatement: Yes 402 MFILE32-NEXT: ] 403 MFILE32-NEXT: ] 404 MFILE32-NEXT: FilenameSegment [ 405 MFILE32-NEXT: Filename: d:\one.c 406 MFILE32-NEXT: +0x3 [ 407 MFILE32-NEXT: LineNumberStart: 1 408 MFILE32-NEXT: LineNumberEndDelta: 0 409 MFILE32-NEXT: IsStatement: Yes 410 MFILE32-NEXT: ] 411 MFILE32-NEXT: ] 412 MFILE32-NEXT: FilenameSegment [ 413 MFILE32-NEXT: Filename: d:\two.c 414 MFILE32-NEXT: +0x8 [ 415 MFILE32-NEXT: LineNumberStart: 2 416 MFILE32-NEXT: LineNumberEndDelta: 0 417 MFILE32-NEXT: IsStatement: Yes 418 MFILE32-NEXT: ] 419 MFILE32-NEXT: ] 420 MFILE32-NEXT: FilenameSegment [ 421 MFILE32-NEXT: Filename: d:\one.c 422 MFILE32-NEXT: +0xD [ 423 MFILE32-NEXT: LineNumberStart: 7 424 MFILE32-NEXT: LineNumberEndDelta: 0 425 MFILE32-NEXT: IsStatement: Yes 426 MFILE32-NEXT: ] 427 MFILE32-NEXT: +0x12 [ 428 MFILE32-NEXT: LineNumberStart: 8 429 MFILE32-NEXT: LineNumberEndDelta: 0 430 MFILE32-NEXT: IsStatement: Yes 431 MFILE32-NEXT: ] 432 MFILE32-NEXT: ] 433 MFILE32-NEXT: ] 434 MFILE32: ] 435 436 MFILE64: CodeViewDebugInfo [ 437 MFILE64: Magic: 0x4 438 MFILE64-NEXT: Subsection [ 439 MFILE64-NEXT: SubSectionType: Symbols (0xF1) 440 MFILE64-NEXT: SubSectionSize: 0x51 441 MFILE64: ] 442 MFILE64: Subsection [ 443 MFILE64-NEXT: SubSectionType: Symbols (0xF1) 444 MFILE64-NEXT: SubSectionSize: 0x4B 445 MFILE64: ProcStart { 446 MFILE64: CodeSize: 0x18 447 MFILE64: DisplayName: f 448 MFILE64: LinkageName: f 449 MFILE64: } 450 MFILE64: ProcEnd 451 MFILE64: ] 452 MFILE64-NEXT: Subsection [ 453 MFILE64-NEXT: SubSectionType: Lines (0xF2) 454 MFILE64-NEXT: SubSectionSize: 0x64 455 MFILE64: LinkageName: f 456 MFILE64-NEXT: ] 457 MFILE64-NEXT: Subsection [ 458 MFILE64-NEXT: SubSectionType: FileChecksums (0xF4) 459 MFILE64-NEXT: SubSectionSize: 0x28 460 MFILE64: ] 461 MFILE64-NEXT: Subsection [ 462 MFILE64-NEXT: SubSectionType: StringTable (0xF3) 463 MFILE64-NEXT: SubSectionSize: 0x1E 464 MFILE64: ] 465 MFILE64-NEXT: Subsection [ 466 MFILE64-NEXT: SubSectionType: Symbols (0xF1) 467 MFILE64-NEXT: SubSectionSize: 0x8 468 MFILE64: ] 469 MFILE64-NEXT: FunctionLineTable [ 470 MFILE64-NEXT: LinkageName: f 471 MFILE64-NEXT: Flags: 0x0 472 MFILE64-NEXT: CodeSize: 0x18 473 MFILE64-NEXT: FilenameSegment [ 474 MFILE64-NEXT: Filename: d:\input.c 475 MFILE64-NEXT: +0x0 [ 476 MFILE64-NEXT: LineNumberStart: 3 477 MFILE64-NEXT: LineNumberEndDelta: 0 478 MFILE64-NEXT: IsStatement: Yes 479 MFILE64-NEXT: ] 480 MFILE64-NEXT: ] 481 MFILE64-NEXT: FilenameSegment [ 482 MFILE64-NEXT: Filename: d:\one.c 483 MFILE64-NEXT: +0x4 [ 484 MFILE64-NEXT: LineNumberStart: 1 485 MFILE64-NEXT: LineNumberEndDelta: 0 486 MFILE64-NEXT: IsStatement: Yes 487 MFILE64-NEXT: ] 488 MFILE64-NEXT: ] 489 MFILE64-NEXT: FilenameSegment [ 490 MFILE64-NEXT: Filename: d:\two.c 491 MFILE64-NEXT: +0x9 [ 492 MFILE64-NEXT: LineNumberStart: 2 493 MFILE64-NEXT: LineNumberEndDelta: 0 494 MFILE64-NEXT: IsStatement: Yes 495 MFILE64-NEXT: ] 496 MFILE64-NEXT: ] 497 MFILE64-NEXT: FilenameSegment [ 498 MFILE64-NEXT: Filename: d:\one.c 499 MFILE64-NEXT: +0xE [ 500 MFILE64-NEXT: LineNumberStart: 7 501 MFILE64-NEXT: LineNumberEndDelta: 0 502 MFILE64-NEXT: IsStatement: Yes 503 MFILE64-NEXT: ] 504 MFILE64-NEXT: +0x13 [ 505 MFILE64-NEXT: LineNumberStart: 8 506 MFILE64-NEXT: LineNumberEndDelta: 0 507 MFILE64-NEXT: IsStatement: Yes 508 MFILE64-NEXT: ] 509 MFILE64-NEXT: ] 510 MFILE64: ] 511 512 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 513 ; The following object files were generated using the following command: 514 ; C:\src> cl /Z7 /Gy /c test.cc 515 ; with the following contents of C:\src\test.cc: 516 ; int f() 517 ; { 518 ; return 0; 519 ; } 520 ; 521 ; int g() 522 ; { 523 ; return 0; 524 ; } 525 ; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively. 526 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \ 527 RUN: | FileCheck %s -check-prefix MCOMDAT 528 RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \ 529 RUN: | FileCheck %s -check-prefix MCOMDAT 530 531 MCOMDAT: ProcStart { 532 MCOMDAT: CodeSize: 0x7 533 MCOMDAT: DisplayName: f 534 MCOMDAT: LinkageName: ?f@@YAHXZ 535 MCOMDAT: } 536 MCOMDAT: FunctionLineTable [ 537 MCOMDAT-NEXT: LinkageName: ?f@@YAHXZ 538 MCOMDAT-NEXT: Flags: 0x0 539 MCOMDAT-NEXT: CodeSize: 0x7 540 MCOMDAT-NEXT: FilenameSegment [ 541 MCOMDAT-NEXT: Filename: c:\src\test.cc 542 MCOMDAT-NEXT: +0x0 [ 543 MCOMDAT-NEXT: LineNumberStart: 2 544 MCOMDAT-NEXT: LineNumberEndDelta: 0 545 MCOMDAT-NEXT: IsStatement: Yes 546 MCOMDAT-NEXT: ] 547 MCOMDAT-NEXT: +0x3 [ 548 MCOMDAT-NEXT: LineNumberStart: 3 549 MCOMDAT-NEXT: LineNumberEndDelta: 0 550 MCOMDAT-NEXT: IsStatement: Yes 551 MCOMDAT-NEXT: ] 552 MCOMDAT-NEXT: +0x5 [ 553 MCOMDAT-NEXT: LineNumberStart: 4 554 MCOMDAT-NEXT: LineNumberEndDelta: 0 555 MCOMDAT-NEXT: IsStatement: Yes 556 MCOMDAT-NEXT: ] 557 MCOMDAT-NEXT: ] 558 MCOMDAT-NEXT: ] 559 MCOMDAT: ProcStart { 560 MCOMDAT: CodeSize: 0x7 561 MCOMDAT: DisplayName: g 562 MCOMDAT: LinkageName: ?g@@YAHXZ 563 MCOMDAT: } 564 MCOMDAT: FunctionLineTable [ 565 MCOMDAT-NEXT: LinkageName: ?g@@YAHXZ 566 MCOMDAT-NEXT: Flags: 0x0 567 MCOMDAT-NEXT: CodeSize: 0x7 568 MCOMDAT-NEXT: FilenameSegment [ 569 MCOMDAT-NEXT: Filename: c:\src\test.cc 570 MCOMDAT-NEXT: +0x0 [ 571 MCOMDAT-NEXT: LineNumberStart: 7 572 MCOMDAT-NEXT: LineNumberEndDelta: 0 573 MCOMDAT-NEXT: IsStatement: Yes 574 MCOMDAT-NEXT: ] 575 MCOMDAT-NEXT: +0x3 [ 576 MCOMDAT-NEXT: LineNumberStart: 8 577 MCOMDAT-NEXT: LineNumberEndDelta: 0 578 MCOMDAT-NEXT: IsStatement: Yes 579 MCOMDAT-NEXT: ] 580 MCOMDAT-NEXT: +0x5 [ 581 MCOMDAT-NEXT: LineNumberStart: 9 582 MCOMDAT-NEXT: LineNumberEndDelta: 0 583 MCOMDAT-NEXT: IsStatement: Yes 584 MCOMDAT-NEXT: ] 585 MCOMDAT-NEXT: ] 586 MCOMDAT-NEXT: ] 587